better web compatibility for our customers less
play

Better web compatibility for our customers Less fragmentation of - PowerPoint PPT Presentation

Better web compatibility for our customers Less fragmentation of the web for web developers Deliver and update for all supported versions of Windows and on a more frequent cadence Join forces to evolve the web 1 2 3 4 We


  1. Better web compatibility for our customers • Less fragmentation of the web for web developers • Deliver and update for all supported versions of Windows and on a • more frequent cadence Join forces to evolve the web •

  2. 1 2 3 4 We will respect the When seeking architectural We believe the We are making this improvements in the evolution of the web is requirements and decision for the long web platform, our engineering best served through term default position will be approaches used in standards bodies to contribute Chromium

  3. Accessibility Editing Security ARM64 Fonts Tooling Authentication Layout Touch Battery life Scrolling Web Standards

  4. Goma HomegrownES LUCI Created a Goma service on Handles PRs from our team Exploring porting LUCI to Azure • • • Azure Merges ~450 changes from Looking at layers of abstraction: • • Utilizing Azure load balancing upstream Chromium daily GAE, NDB • Resolves ~75 conflicts daily Should scale well to our needs • • Rolling builds If successful, we are interested in • • contributing to LUCI Daily release builds • Based on Jenkins & Azure •

  5. Telemetry • UMA/UKM uploaded to our instrumentation services (1DS) Crash reporting • Connected to our Watson service Experimentation • Integrated with our Experimentation and Configuration Service (ECS)

  6. We upload UMAs (UKMs soon) using 1DS client SDK • Takes care of upload and retries, populating common schema fields, privacy requirements Privacy requirements include • Privacy classification: critical, measure, telemetry • Transparency requirements (GDPR) •

  7. Serialize Persisted Compress Log Log New Edge Reporting Rotate Service Work from persisted log Edge Reporting Service Chromium Reporting Service Deserialize using Decompress Split 1DS protobuf_full Deserialize Client Parse Split to 1DS schema Chromium Uploader Microsoft Google

  8. Serialize Persisted Compress Log Log Potential Rotate Improvements: Work directly from in- Edge Reporting Service memory log Chromium Reporting Service Decompress Split 1DS Move off main thread Deserialize Client Parse Use differential privacy Chromium reporting (RAPPOR)? Uploader Microsoft Google

  9. ~300 merges so far Other areas we would like to help with: In-progress: PDF enhancements Accessibility (UIA) • • Battery life High contrast • • Smooth Scrolling Caption Styling (Web VTT) • • Editing Native caret browsing • • Layout ARM 64 • • Dev tools TSF1 • • Web Authentication •

  10. Implements: Auto-correction • Keyboard suggestions • Shape writing • IME reconversion after composition • Built on existing (inactive) implementation Available on Win7, 8.1, 10

  11. Areas we would like to contribute Fundamentals: bug fixes, test coverage • Accessibility enhancements: better screen reader, high contrast • Smooth Scrolling: HTML based layout • Simplification of process model •

  12. Edge on Chromium Chrome Web Media Battery – Summary Power Report EdgeHtml 3 areas of investigation: High resolution timer in • message pump Disk cache during video • playback Audio offloading to hardware •

  13. MapFile System Cost On Windows 10 Insider: Rely on OS (size caps increased) • On Win8 – Win10 1809: Chromium pre-reads file in MapFile • memory -> forces a copy Instead map file as Image, and fetch • using PrefetchVirtualMemory Savings for chrome.dll: 80+ MB •

  14. Scrollbar latency Intent to Implement • impl-threaded scrollbars Missed frames (investigating) Composition thread priority • GPU contention, scheduling • misses, IPC delays

  15. Smooth Scrolling LayoutNG We would love to help with: We went through a similar transition in EdgeHtml in IE9 BlinkGen Property Tree (BGPT) • Composition After Paint (CAP) • Independent rendering •

  16. PlayReady DRM • Services integration • Single Sign-On •

  17. Why PlayReady? 4k streaming DRM content (e.g., Netflix) • Hardware decryption/decoding • Software decryption in protected process (LPAC) • Power savings: offloaded audio, video batching • Edge supports PlayReady and Widevine

  18. Edge specific Renderer Process WebMediaPlayerImpl GPU GLRenderer PlayReadySwitchingRenderer Process Supported by Windows • DCOMP Demux MFMediaEngine Surface DefaultRenderer RendererClient Media Foundation Registry DirectComposition New MediaEngineRenderer • SurfaceWin (GLSurface) and CDM in sandbox DCOMP MF Media + CDM Service Process (LPAC) GLImage Uses existing support of • MFMediaEngineRenderer Direct Composition (DCOMP) DWM Process Video Frames Inbox OS Media Foundation OS Compositor DCOMP MFMediaEngine (DCOMP) Surface

  19. Mostly small issues: Chromium kills renderer after 1 min of Overall, after ramping up on • pause the architecture, it was Sites get confused because Edge 1 st to relatively easy to plug-in • PlayReady DRM support PlayReady and Widevine Still fixing bugs! •

  20. Safe browsing Speech input Single sign-on (Gaia) Developer Tools Remote Debugging Nearby messages Google Pay Content Hash Fetcher iOS Promotion Service Link Doctor Drive API Flighting Service One Google Bar Download Ad blocking Chrome OS hardware id Component Updater Service Brand Code Configuration User data sync Device registration RAPPORT service Fetcher Spellcheck Google Maps Time zone Chrome OS monitor WebRTC Logging calibration Suggest Google Cloud Storage Captive Portal Service Chrome OS device Translate Cloud Print management SmartLock Google DNS Android app password sync Form Fill Supervised Profiles Offline Page Service Push Notifications Address Format Feedback WebStore Network Location Domain Reliability Monitoring Extension Store Network Time Data Reduction Proxy Maps Geolocation Favicon service Chrome Cleanup Google Now Google Cloud Messaging

  21. Sign-in Menu Sign-in Button Access Token Needed for Service Call SigninViewController OAuth2TokenServiceDelegate ::ShowSignIn ::CreateAccessTokenFetcher Edge supports: MSA or AAD identities • EdgeAuthenticationManager EdgeAccessTokenFetcherImpl OneAuth ::StartSignIn App to browser SSO • Login UX Token Fetching Browser to app SSO App and OS SSO • Website SSO OS to browser SSO … • EdgeAuthenticationManager EdgeAccessTokenFetcherImpl Browser to site SSO ::StartSignIn callback Async HandleAccessTokenFetch callback • Proceed with Service Call Populate User Info into UI Edge specific

  22. Thank you for a great partnership! • We made hundreds of changes to Chromium to produce Edge • Contributed 300+ merges so far and planning on contributing much more! • We’re building expertise in many areas of the code base • Overall, building Edge on Chromium was a relatively smooth process • Looking forward to contributing more! •

Recommend


More recommend