predictability for the web

74

Upload: robert-nyman

Post on 06-Apr-2017

2.032 views

Category:

Technology


0 download

TRANSCRIPT

Predictability for the Web

@robertnyman@RickByers

Rick & Robert

Rick & Robert

Rick & Robert

What is Predictability?

Image credits: https://www.flickr.com/photos/toddle_email_newsletters/15575925446

Working cross-browser is hard

Inconsistency and lack of interoperability

Started the Predictability project 6 months ago

The web has a problem

Image credits: https://www.flickr.com/photos/toddle_email_newsletters/15575925446

Canada & Sweden

Image credits: https://commons.wikimedia.org/wiki/File:Flag_of_Canada.svg https://commons.wikimedia.org/wiki/File:Flag_of_Sweden.svg

How Chrome is trying to improve predictability for developers

How we work with other browsers to make this better

How web developers can help improve the platform

Image credits: https://www.flickr.com/photos/toddle_email_newsletters/15575925446

We want the web to just work for developers

Fight the platform less

Reduce the need for:

Browser-specific code paths

Workarounds for regressions

Polyfills for inconsistencies between APIs

Shims that smooth over lacking interoperability

Break websites less

Ship no accidental regressions.

Only deprecate features when we understand the cost and know it’s worth it.

Be transparent about interventions, and give developers a smooth migration path.

Image credits: https://www.flickr.com/photos/dullhunk/4517822872/

Fail fast and obviously

Decrease the number of times a developer stares at a blank screen or searches aimlessly for help.

Image credits: https://www.flickr.com/photos/johnath/7356295658

Data informs platform changes

Tradeoffs that impact existing developers’ sites can be quantified by usage data or compat analysis tools.

A more coherent platform

Features that are commonly used together work well in conjunction.

Remember when web development was hard?

Predictability improvements

Predictability Improvements

Cross-browser collaboration

Listening to web developers

Minimizing breaking changes

Cross-browser collaborationBy Oregon Department of Transportation (Collaboration Uploaded by AlbertHerring) [CC BY 2.0 (http://creativecommons.org/licenses/by/2.0)], via Wikimedia Commons

Better interopImproved collaboration between engines:

Specifications Bug trackers

Shared test suites GitHub issues

Standards meetings Twitter

Conferences Mailing lists

We’ve gotten better at listening to you.

https://www.flickr.com/photos/paul_garland/4957441955

Listening to web developers

The Web is a commons

It thrives on collaboration and competition

Good communication between stakeholders is critical

By Daniel Schwen (Own work) [CC BY-SA 4.0 (http://creativecommons.org/licenses/by-sa/4.0)], via Wikimedia Commons

Blink bugs!

The best way to discuss where chromium should improve for web developers

https://www.flickr.com/photos/brizzlebornandbred/12852086543

Blink bugs over time

0

550

1100

1650

2200

Jan 2

014

AprJu

ly Oct

Jan 2

015

AprJu

ly Oct

Jan 2

016

AprJu

ly Oct

Opened Closed (not archived)

External blink bug stats for September

Total external 300 (28% of total)

Triaged 93%

Resolved 62%

Fix landed 16%

Star bugs!

For the top 1%

Fixed: 66%

15% of the top 60 fixed this year!• Ship MediaRecorder

(#262211, 1822 stars) Encoding audio and video streams

• Ship Pointer Events (#471824, 1027 stars) New input API that unifies mouse, touch and stylus

• Smooth Scrolling(#575, 576 stars) Animate scrolls from keyboard / clicky mouse

• Support for the Tifinagh language (#569421, 398 stars) Used in northern Africa

• Don't fire click for middle button(#255, 190 stars)Replaced by new “auxclick” event

• Support for CSS hyphens property (#605840, 179 stars) Used to enable or disable hyphenation

• Started: Animated PNG (#437662, 884 stars)

Minimizing breaking changes

Aug 23

Regression introduced, goes unnoticed

Chrome 54 beta released

Bug filed Fix lands Verified in new beta release

Sept 2

2

Sept 2

0

Sept 1

5

Sept 2

8

Oct 17

Chrome 54 stable ships

A recent regression: Bug 648589

External blink bug stats for September

All bugs Regressions

Total external 300 49

Triaged 93% 100%

Resolved 62% 84%

Fix landed 16% 39%

Deprecations

Image credits: https://www.flickr.com/photos/12567713@N00/5724170380

Excellentuser experience

vs. Composition

of partsyou can’t control

https://www.flickr.com/photos/clonedmilkmen/3604999084

Interventions

• Minimally breaks existing behavior • For substantial user benefit • Should be

• Predictable • Avoidable • Transparent • Justified by data

Example intervention: throttled rendering

• Don’t run rendering pipeline for off-screen cross-origin iframe

• Shipped in Chrome 52 • Substantial power improvements • No reports of broken sites

Example intervention: throttled rendering

• Don’t run rendering pipeline for off-screen cross-origin iframe

• Shipped in Chrome 52 • Substantial power improvements • No reports of broken sites

Developer Feedback

Developer Feedback

Listening to developers

Understanding challenges

Getting information

New bug wizard

New bug wizard

Web developer focus

Direct routing to right team

Filing a good bug or starring one that exists is the fastest way to get an issue fixed

developers.google.com/web/feedback/

Image credits: https://xkcd.com/979/

Browser Bug Searcher

Web Predictability breakout sessionTomorrow, 4pm

Take awaysWe’re trying to treat the web as a single platform

Test on beta and file bugs

Star the bugs / features you care about

Visit /feedback, try the Browser Bug Searcher

Get involved - this is your web!

Thank you!To all you web developers making the web better

Thank You!Rick Byers @RickByers

Robert Nyman @robertnyman