Objectives

At Google we define and track progress against our goals using "OKRs" (Objectives and Key Results). Here are the OKRs for the web platform predictability infrastructure project. Note that these are intentionally aggressive and so we will be happy if we deliver 60%-70% of them. Platform predictability also includes broader efforts by other web platform teams (eg. improving interop of the features they own), but those are owned by the individual teams (eg. input-dev) and so not included here.

2016 Q3

  • Improve interop testing

    Invest in a high quality test suite for the web platform as a whole.
    • Imports happening daily via simplified import process.

      • Add a builder which tries to update, and aborts if an automatic update couldn't be completed.
      • Add a script to trigger try jobs to discover which new tests are failing across different platforms.
      • Add a mapping of directories to auto-update preferences, and when updating, edit W3CImportExpectations/TestExpectations and file bugs according to this mapping.
    • Easier contribution to web-platform-tests

      Implement a way to contribute to WPT repository with Chromium tools. Our tools assume that some configuration files are checked in to the target repository, and we need to put such files to a separated repository for WPT.
      • Agreement on changes in our tools with chrome-infra
      • Implement
      • Land the first CL using the process to both of Chromium repo and WPT repo
      • Multiple Blink engineers landed CLs with the process
    • Bugs filed for all automated web-platform-tests that fail on Chrome but pass on two other engines

      Use this to increase our understanding of the value of WPT
    • Eliminate csswg-test build step

      Test harness runs unbuilt tests
    • Eliminate csswg-test pull-request backlog

      32 as of 6/20
    • W3C PointerEvent Tests: Complete automation through script injection

      shared with input-dev.
  • Improve understanding of web compat

    Tools for better data for decision making that impacts compat, and process improvements that reduces the risk/cost of regressions.
    • Googlers can use bisect-builds.py to bisect regressions on Linux Chrome down to an individual commit position

      Internal only for now due to only official Chrome builds being archived. Obviously doesn't include positions which fail to build, etc.
    • Land scripts and publish instructions for using cluster telemetry for UseCounter analysis

    • Fix fast shutdown and PageVisits issues in UseCounters in Chrome 54

      https://crbug.com/597963, https://crbug.com/236262
    • Web platform TLs regularly use a view of regression rates per component

    • Extend Cluster telemetry to add new anlyasis page and support runs on 100k web pages

      Goal is developers can intuitively and easily schedule analysis runs using Cluster Telemetry's new analysis page. Specific AIs: Make CT using swarming. No waiting in queue. Add 200+ VMs to CT pool. Add support for 100k pages. http://skbug.com/5465, http://skbug.com/5316, http://skbug.com/5245
    • Remove (or downgrade) deprecation warnings not on imminent path for removal

      Goal is developers can easily tell what things are highly likely to impact them and when https://crbug.com/568218
    • Concrete plan for deprecation API

      https://crbug.com/564071
    • Establish regular triage of Hotlist-PredictabilityInfra bugs

      Combined with hotlist-interop triage?
  • Improve web platform feature interoperability

    Partner with feature teams to invest in improving interop in specific high-return areas (as an exception to the general rule that teams own their own interop).
    • Ship the unprefixed Fullscreen API

    • Ship the fullscreen top-layer rewrite

      Shared with layout-dev
    • Concrete standards proposal and tests for event loop behavior

      https://github.com/atotic/event-loop
      • Land interop tests for promise resolution behavior, file bugs for failures in all browsers
      • Specify that some events fire just before rAF
      • Engage other vendors in discussion about which events should be defined to be coupled to rAF, and to what extent their order should be defined
      • Write interop tests for rAF-coupled events
    • At least bi-weekly triage of Hotlist-Interop issues

      Triage process here: https://docs.google.com/document/d/1fDE3cFjQta0i7zx7JY1Icx0NNRS20HACz4uKb3Wo3hI/edit?pref=2&pli=1
    • STRETCH: Concrete shipping plan for unprefixed fullscreen in WebKit, EdgeHTML and Gecko

  • Improve communication with web developers

    • Own chromestatus.com and drive its improvement

      • Take ownership of codebase, understand its structure
      • Chromestatus is instrumented and we understand where people are going on the site
      • Meet with teams to discuss pain points and areas for improvement for Chromestatus
      • Best practices and guidance for using Chromestatus are documented and visible *on Chromestatus*
      • Meet with Mozilla, Microsoft, Opera to discuss merging all status trackers
    • Create and distribute a GCS / Endor survey to inform developer survey

    • Reach consensus within Google on our developer feedback strategy

      go/webdevfeedback
    • Create and distribute a comprehensive developer survey

      • Buy in from all major parties on survey including primary learnings we want
      • First draft of survey completed
      • Final draft of survey agreed upon by all major parties
      • Survey distributed and gathering feedback
  • Reduce footguns in the web platform

    Make it easier for web developers to reason about behavior of their applications, especially when they're composed of multiple 3rd-party components.
    • Initial implementation of Feature Policy (behind a flag)
      • Parse response header to construct policy
      • Remove features based on policy (document.{write,cookie,domain}, SyncXHR, WebRTC)
      • Propagate removal to embedded frames
    • V1 Feature policy spec feature-complete
      • converge on v1 set of must-have features
      • figure out all the spec plumbing and interop bits
      • draft explainer, engage other browser vendors + developers
    • Integrate permission delegation with feature policy
      • Enforce API permissions based on parsed feature policy
Comments