2016 OKRs

2016 Q4 0.57

Improve Input Performance 0.46

Hold the line on input performance P1 0.70
Intervene on the user’s behalf to improve scrolling performance #wp-interventions P1 0.45
Drive adoption of passive event listeners P2 0.20
Improve Wheel Scroll Performance P2 0.40
Improve timing of Event Signaling P3 0.50
Find and Fix Low-Hanging Performance Issues P3 0.10

Improve understanding of real-world input performance 0.21

Prototype Input Progressive Web Metrics P1 0.20
Improve automated input performance testing infrastructure P2 0.00
Use RAPPOR to collect realtime input performance based on websites P2 0.50
Measure Impact of Extensions on Input Performance P4 0.00

Eliminate key developer pain points around input 0.56

Layout-inert URL bar P1 1.00
Provide the tools for it to be easier to deal with keyboard input P1 0.50
Ship ViewportAPI P4 0.00
Ship CSSOM Smooth Scroll P2 0.30
document.rootScroller P2 0.50
Implement overscroll-action API P2 0.80
Implement ScrollCustomization API P2 0.30
Drive the Adoption of history.scrollRestoration P4 0.00
Touch Adjustment - Investigate and propose a solution P4 0.00

Improve Interoperability of Input Events amongst major browser engines 0.86

PointerEvents: Successful launch in M55 stable. P1 1.00
PointerEvents: W3C Spec & Tests P2 1.00
Test and address interoperability issues in the UI Event Spec P2 0.50
Historical Points API P3 0.60
Successfuly Ship auxclick in M55 P3 1.00

Product Excellence 0.72

Ship Material Design “overlay” scrollbars P1 0.70
Be responsive to our users concerns P1 0.90
Ship Scroll anchoring P1 1.00
Enable input automation of individual pointers P1 0.70
Using WebDriver for automated testing with input P1 0.30
Quantify causes of Hung Renderer Crashes when it is completely idle P1 1.00
Ignore clicks on recently-moved iframes (crbug.com/603193) P2 0.40
PointerEvents: Reduce bug backlog for mouse & touch P2 0.85
PointerEvents: Improve stylus support P2 0.50
Ship unified OSK viewport behavior between Android and CrOS P4 0.00

Improve Input Code Health 0.29

Remove Artificial Layering in the Input Pipeline P2 0.60
Consolidate pointer-type events in Chromium P2 0.00
Overhaul Chrome Autoscroll P2 0.00
Mojoifcation Architecture (Salamander) P3 0.00
Make Keyboard scroll events to be gesture based events P4 0.00
Use Proper Time Types for Events P2 0.80

2016 Q3 0.65

Improve input performance 0.74

No regressions in key metrics that last more than a single milestone P1 0.80
Force touchstart event listeners to be passive during fling by M54 (behind finch trial) P1 1.00
Launch root scroller intervention behind a finch trial in M54 P1 1.00
Ratchet up root scroller intervention to 100% before end of quarter P4 0.20
Add intervention forcing event listeners to be passive for unresponsive main thread (Finch trial in M54) P2 0.40
Eliminate multiple queuing points for mouse and touch events and deliver most up to date information P1 1.00
Implement RAF aligned input on the main thread as an runtime enabled feature P2 1.00
Draft design doc for VSync aligned compositor input handling P1 1.00
Implement VSync aligned input for compositor gesture scroll and pinch behind finch trial P1 0.50
Analyze VSync aligned compositor input performance metrics from finch trial data P2 0.00
Reduce the 99'th percentile of first gesture scroll update latency on Nexus 5 by 30% on the best finch trial P2 1.00
Find owners for 5 issues discovered through current input latency perf report P3 0.00
Ship scroll latching for touchpad behind a flag on all platforms P1 0.40

Improve understanding of real-world input performance 0.63

Author document precisely describing Progressive Web Metric for estimated input latency P1 0.70
Progressive Web Metric for estimated input latency landed in at least 1 form. P2 0.80
Share data on the realism / reproducibility tradeoff in telemetry input tests. P2 0.00
Run all of the current touch event latency reports on Chrome Trace Processor P3 0.00
Implement TBMv2 versions of touch input telemetry metrics P3 0.80
Get touchpad scroll latency regressions as actionable as touch scroll regressions P3 1.00
Progressive Web Metric for time to interactive landed in at least 1 form. P2 1.00

Eliminate key developer pain points around input 0.45

Complete Root Scrollers implementation behind a flag in M54 P1 0.80
Create compelling demo showing benefit of RootScroller API and publish it with devrel P3 0.50
Ship API to expose visual viewport information to developers in M54 P1 0.60
Investigate touch adjustment and find a solution to coordinate touch events and click event P2 0.00
Implement position:device-fixed behind a flag for M55 P4 0.00
Ship non-layout affecting URL bar in M55 P2 0.00
Draft spec on method for developers to control which virtual keyboard is shown P2 0.70
Ship API to control Chrome pull-to-refresh nav gesture behind a flag in M55 P2 0.30
[Stretch] Contribute history.scrollRestoration patch to Webkit P4 0.00

Improve Interoperability of Input Events amongst major browser engines 0.78

Ship non-primary button click event in M54 P2 0.90
Update InputEvent implementation and design doc based on the currently published specification by M54 P2 0.80
Continue implementing the simple rich text editor using ContentEditable and InputEvent P2 0.80
Remove keyIdentifier from Blink in M54 P2 1.00
Remove coordinates from TouchEvent [WebKit] P3 0.00

Product Excellence 0.76

Maintain Burndown of Hotlist-Input-Dev by closing 15 more issues than were incoming rate P1 0.90
End quarter with no P0,P1 issues that we started the quarter with P1 1.00
Input-Dev PE FixIt Week in August P2 1.00
Triage all new Blink>Input, Blink>Scroll issues within 7 days P1 1.00
Scroll anchoring - shippable prototype and WICG spec with initial round of feedback P1 0.65
Conduct analysis and add necessary information to drive resolution to Renderer Hung Crashes P1 0.40
Improve touchpad user experience on Windows devices P3 0.00
Ship unified OSK viewport behavior between Android and CrOS for M55 P2 0.60

Improve Input Code Health 0.55

Combine PlatformEvent and WebInputEvent P2 0.30
WebMouseEvent becoming a pointer event API: design doc on an incremental impl plan, land initial patches P3 1.00
Improve TouchEventQueue sync with renderer P4 0.00
Create & minimally plumb PlatformPointerEvent P4 0.20
Refactor mouse code out of EventHandler & its submodules into MouseEventManager P3 1.00
Make PointerEvents the driver for mouse code in EventHandler P3 0.90
Use better types for time for Events in blink P4 0.00

PointerEvent API is ready to ship 0.91

Analyze compatibility with Edge for 25 sites using pointer events  1.00
Run a Finch trial with PointerEvents enabled P1 1.00
Hackathon@MS P1 1.00
Share implicit pointer capture compat data and our proposed plan with PEWG P1 1.00
Consensus in PEWG on the precise design Chrome should try shipping (covered by open PRs) P2 1.00
Drive committing fixes for 20 PEWG spec issues via participation in github and regular calls P2 1.00
Resolve all P0 and P1 launch blocking bugs P2 1.00
W3C PointerEvent Tests: Complete automation through script injection P1 1.00
W3C PointerEvent Tests: Run on all platforms with all pointer types, report the outcome to PEWG P2 0.99
W3C PointerEvent Tests: land 10 pull requests in github to improve test coverage/quality P3 1.00
PointerEvents fully automatable without the use of event sender P1 0.90
Support fractional co-ordinates in PointerEvents, update Blink MouseEvent as needed P3 0.10
Stylus low level events: all events received in Blink for Mac, Windows and CrOS P2 0.20
Stylus properties: complete plumbing of tilt & pressure for Windows, CrOS, Android and Mac P3 0.60
Create a doc on consistent stylus interactions P4 0.00
STRETCH: Turn pointer events on by default on trunk P4 1.00

Drive adoption of passive event listeners 0.36

Reduce fraction of touch events unnecessarily blocking scroll from 43% to 35% P1 0.00
Add ability to discover scroll blocking event handlers easy in devtools P2 0.00

2016 Q2 0.66

Improve scroll latency and smoothness 0.50

No regressions in key metrics that last more than a single milestone P1 1.00
Reach (data-driven) consensus on plan for touch scrolling intervention (replacing touch ACK timeout) P1 0.70
Ship initial conservative touch scrolling intervention via Finch by M53 P1 0.20
Make touchstart events during fling nonblocking by M53 (behind finch trial) P2 0.00
Reduce the 99'th percentile of first gesture scroll update latency on Nexus 5 by 30% P2 0.20
Add DevTools Support for Passive Event Listeners by M53 P2 0.90
Fix 3 smooth scroll performance bugs by M53 P2 0.70
Implement vsync aligned gestures in M53 P2 0.00
Implement vsync aligned touch input in M53 [Stretch] P4 0.00

Improve understanding of real-world input performance 0.73

Measure efficiency gain and breakage caused by 5 possible touch scrolling intervention approaches. P1 0.65
Expose touch scroll latency information through devtools by M53 P1 1.00
Add non-scrolling input performance metrics by M53 P2 1.00
Improve on the current touch event latency reports P2 0.80
Evaluate and Implement strategy for not calculating event path, and dispatching event if no listeners P2 0.00

Eliminate key developer pain points around input 0.35

non-Document root scrollers implementation complete (behind a flag) in M52 P1 0.30
Ship non-layout-affecting top control resizes in M53 P3 0.00
Ship API to expose visual viewport information to developers in M52 P2 0.70
Ship unified OSK viewport behavior between Android and CrOS for M53 P3 0.00
Draft spec on method for developers to control which virtual keyboard is shown P2 0.00
Design for ignoring clicks on iframes that have moved recently P2 0.60
Implement position:device-fixed (behind a flag) as a way to attach elements to the visual viewport P3 0.00
Draft spec an API to control Chrome pull-to-refresh nav gesture behind a flag P2 0.80
Contribute history.scrollRestoration patch to Webkit P4 0.00

Improve Interoperability of Input Events amongst major browser engines 0.81

Implement InputEvent beforeinput (behind a flag) based on the provisional specification in M52 P1 0.90
Implement InputEvent input (behind a flag) based on the provisional specification in M53 P1 0.80
Make pointer event tests automatically run on Chrome on all platforms P1 0.80
Add low level touch event API to Chromedriver in M53 P2 0.70
Fix 8 Keyboard related interop bugs in backlog P2 0.60
Make sure the order of composition events and input events matches spec in M52 P2 0.90
Contribute WebPlatform Tests for Editing beforeinput/input and composition events P2 0.80
Implement HTMLSelect ability to programmatically open in M52 behind a flag P4 0.00
Enable non-manual uievents and domevents webplatform tests P2 1.00
Investigate in re-using Touch instances as Safari does P3 1.00
Deprecate executing default action on Untrusted events P2 1.00
Implement a simple rich text editor using ContentEditable and InputEvent P2 0.60

Product Excellence 0.85

End quarter with no P0,P1's older than 90 days P1 0.80
Triage all new Blink-Input, Blink-Scroll bugs within 7 days P1 1.00
Scroll anchoring - shippable prototype and WICG spec with initial round of feedback P1 0.50
Increase burndown of issues. Close 10 more hotlist input dev bugs than the incoming rate. P1 1.00
Ship stricter user gestures for touch intervention in M52 P1 0.90
All Hotlist=Input-Dev bugs with >= 15 stars have an OWNER P1 0.90

Improve Input Code Health 0.55

Refactor EditorCommand to use an enum class in M52 P2 1.00
Propose and Implement removal of WebInputEvent <--> PlaformEvent conversion P2 0.30
Refactor IME keyboard event generation code to be common across all platforms P4 0.00
Improve situation around Blink scroll offset type P4 0.00
Refactor main thread touch and wheel scrolling paths to use scroll customization machinery P2 1.00
Improve usage of time unit types for event timestamp P2 1.00
Consensus on a plan for WebMouseEvent to become a pointer event API. P2 0.00
Improve TouchEventQueue sync with renderer P2 0.00
Design a modular EventHandler P2 1.00
Update MouseEvent (and so PointerEvent) to support fractional co-ordinates. P3 0.25

PointerEvent API is feature-complete with major developers' concerns addressed. 0.80

Fix redundant pointercancel bug with touch-action in M51. P0 0.90
Enable developers’ testing of PointerEvent in M52, address community feedback. P0 1.00
Fix interaction issues between PE's explicit capture & TE's implicit capture. P1 1.00
Analyze compatibility with Edge for top 20 sites using pointer events P1 0.80
Drive the open PEWG spec issues down from 21 to 10 via participation in github and regular calls. P2 0.70
Share implicit pointer capture compat data and our proposed plan with WG. P2 0.25
Improve test infrastructure & coverage P2 0.60
Create a doc on consistent stylus interactions. P2 0.20
Blink is receiving all stylus events on 2 platforms by EOQ P3 0.40

Drive adoption of passive event listeners 0.51

Reduce fraction of touch events unnecessarily blocking scroll from 47% to 30% P0 0.15
Publish usage guidance with assistance from DevRel in time for M51 stable release P1 1.00
Get 4 major partners to make their touch listeners passive P0 0.20
Land the EventListenerOptions feature detect in Modernizr P2 1.00
Passive touch listeners are promoted at Google I/O P2 1.00
Add chrome://flags entry forcing all touch listeners (or all page-wide touch listeners) to be passive P2 1.00
Publish comparison of real world scroll start performance with passive listeners and blocking listeners P3 1.00

2016 Q1 0.60

Improve scroll latency and smoothness 0.65

Ship Passive Event Listeners in M50 P0 0.90
Land passive event listener interop tests in web-platform-test P2 0.00
4 important external partners actively experimenting with passive event listeners P2 0.20
Reach (data-driven) consensus on plan for touch scrolling intervention (replacing touch ACK timeout) P2 0.20
Get consensus on TouchEvents spec change for async touchmove and passive listeners P2 1.00
Land performance optimization for passive wheel listeners P3 1.00

Improve understanding of real-world input performance 0.62

Add non-scrolling input performance metrics P1 0.60
Use slow reports to measure efficiency gain and breakage caused by possible touch ack timeout approaches. P1 0.20
Expose touch scroll latency information through devtools P1 0.20
Quantify our objective of fixing scroll blocking P1 1.00
Expose hardware input timestamps to the web P1 1.00
Use slow reports to generate initial breakdown of where input handling logic spends time P2 1.00
Add touch scroll latency metric measuring until estimated vsync time (STRETCH) P4 0.00

Eliminate key developer pain points around input 0.61

Fix at least 100 Hotlist-InputDev bugs P1 1.00
Triage any new Blink-Input, Blink-Scroll bug within 7 days P1 1.00
Solution to non-document root scroller problem landed behind a flag in M51 P1 0.25
Implement unified OSK viewport behavior between Android and CrOS for M50 behind a flag P2 0.80
Provide a way for developers to attach elements to the visual viewport P2 0.20
Land change to top control resizes to be more user friendly and Safari compatible in M50 P2 0.25
[STRETCH] Spec an API to control Chrome pull-to-refresh nav gesture behind a flag P4 0.00
Spec an API to expose visual viewport information to developers P2 0.50

Improve input interoperability between major browser engines 0.65

Enable automated input testing on Chrome for W3C web-platform-tests P1 0.35
Ship KeyboardEvent.key P1 1.00
Reduce UI Events spec bug count to under 25 P2 
Reach consensus across vendors on an updated plan for ScrollTopLeftInterop P4 0.00
Triage all Hotlist-Interop bugs and find appropriate owners every week P2 0.70
Land scroll restoration interop tests in web-platform-test P2 1.00
Update HTMLSelectElement.open proposal and get buy in from other vendors. P3 0.00

PointerEvent API implementation is feature-complete 0.53

Fix redundant pointercancel bug with touch-action. P1 0.65
Enable developers’ testing of PointerEvent, address community feedback. P2 0.20
Implement explicit pointer capture support. P1 0.75
Report to WG the outcome of all w3c tests except the ones for pointer capture. P2 0.80
Measure compatibility with Edge for top 20 sites using pointer events P2 0.10
Share implicit pointer capture compat data and our proposed plan with WG. P3 0.20
Update MouseEvent (and so PointerEvent) to support fractional co-ordinates P3 0.00
Add pointer event handler tracking P3 1.00

Improve support for text input via IMEs 0.40

Implement and ship InputEvent P2 0.60
Complete specification for input and beforeinput events P2 
Implement beforeInput (behind a flag) for Linux P2 0.30
Contribute WebPlatform Tests for Editing beforeinput/input and composition events P2 0.30

Improve input code health 0.50

Refactor MouseWheel scroll events to be gesture based events P2 1.00
Extend WebMouseEvent to become a pointer event API P2 0.00
Remove logic for touch scroll chaining P3 0.20
Complete both outstanding viewport refactorings P3 0.00
Refactor necessary code for input to actually send InputEvent from Editing specification P2 0.40
Refactor Event.dispatchEvent to return an enumeration P2 1.00

Comments