Platform/2014-Q3-Goals
< Platform
Jump to navigation
Jump to search
Platform
2014 General Goals
GFX
Items marked here with release 33 and 34 are part of the Q3 landings.
Layout
- Layout to Moz2D
- [ON TRACK] Migrate SVG to Moz2D (bug 703159)
- Enable Vertical Text for major use cases for Chinese & Japanese
- [ON TRACK] bug 145503
- Text Performance
- [ON TRACK] bug 998869 Streamline parsing of fontlists and improve efficiency of font matching code (note: unicode-range support will fall out of this work)
- [ON TRACK] bug 934770 - slow at rendering large blocks of plain text
- [ON TRACK] bug 860492 - Divide large text runs into smaller runs to avoid chrome hangs
- Improve Restyling Performance
- [ON TRACK] bug 977991
- [ON TRACK] Font Inflation and Reflow-on-Zoom
- both implementation bug fixing and spec work
- -moz-text-size-adjust
- ImageLib
- [ON TRACK] RasterImage for multiple images
- CSS Projects with Adobe
- [ON TRACK] CSS Filters
- Animations & Transitions
- [ON TRACK] transitions/animations spec editing
- [ON TRACK] transitions refactoring to match new spec (960465)
- [ON TRACK] frame reconstruction (625289)
- OMTA on non-B2G Platforms (980770)
- [ON TRACK] fix correctness bugs (cascading, etc.)
- [ON TRACK] turning on on other OMTC platforms (Mac/Android)
- Web animations:
- [ON TRACK] TBD
- CSS Scrolling
- [ON TRACK] CSS scroll snapping
- [ON TRACK] scroll-behavior:smooth
- CSS Flexbox
- [ON TRACK] performance bugs
- [ON TRACK] spec changes
Media
- [ON TRACK] Pref on MSE/VP9 for Firefox 32
- [ON TRACK] Pref on MSE/VP9 for Firefox 32
- [ON TRACK] Enable MSE/MP4 on Windows for Firefox 33
DOM
- [ON TRACK] Mirror prototype of DOM objects through xray wrappers (peterv)
- [ON TRACK] Remove nsDOMClassInfo.cpp
- [ON TRACK] Make less-privileged non-Xrayable unwaived opaque from privileged code (bug 856067)
- [ON TRACK] Route all JSContext pushing through AutoJSAPI and Implement GetEntryGlobal (bug 951991)
- [ON TRACK] Land <picture> preffed on on nightly (johns)
- [ON TRACK] audit callsites of IsInDoc()/GetCurrentDoc to ensure correct Shadow DOM behaviour and fix Shadow DOM blockers for Gaia (smaug, wchen) (bug 1026047)
- [ON TRACK] land Service Workers preffed on on nightly (nsm, bkelly, baku) (bug 903441)
WebAPI
- [ON TRACK] create design plan for "share" activity (flow, what kind of objects are involved) (annevk)
- [ON TRACK] document existing activities usage in gaia (ehsan)
- [ON TRACK] get screen orientation spec to LC (marcosc)
- [ON TRACK] publish use cases and spec for wakelock API (marcosc)
- [ON TRACK] 24/12 hour format API (ehsan)
- [ON TRACK] new quota API on PBackground for Service Worker cache (janv)
- [ON TRACK] IndexedDB in workers (bent)
JS
- [ON TRACK] 837314 - ES6 classes
- [ON TRACK] 941796 - Generational GC on Firefox OS
- [ON TRACK] 650161 - Compacting GC to reduce memory usage
- [ON TRACK] 856533 - Escape analysis JIT optimizations
- [ON TRACK] 998392 - Use Latin1 strings to reduce memory usage
- [ON TRACK] 903519 - Allocate strings in GC nursery (for performance)
- [ON TRACK] 972710 - ARM64 JIT [stretch goal]
Accessibility
- [ON TRACK] e10s: proxy the common a11y API stuff like name, role, and states.
- [ON TRACK] GAIA: Fix all Gaia P1 a11y bugs (~30 at this time).
- [ON TRACK] FFOS: bug 1030465 - Volume change should update the screen reader volume.
- [ON TRACK] FFOS: bug 1030466 - Headphones screen reader volume is too low.
- [ON TRACK] FFOS: bug 1030468 - VC rectangle needs to work with scaled content.
- [ON TRACK] FFOS: bug 1030470 - Localization needs to work when switching locales in FxOS.
Perf
Fix major source of browser jank:
- [ON TRACK] Initialize plugin instances asynchronously bug 998863
- [ON TRACK] Pause heavy main-thread activities while user is interacting with the browser:
- [ON TRACK] Determine when a user is actively interacting with the browser
- [ON TRACK] Detect when jank occurs during interactions and report to Telemetry bug 1017055
- [ON TRACK] Experiment with hinting to GC & CC that they should pause while the user is interacting with the browser
- [ON TRACK] Take over refactoring of Places from Frontend team, eliminate some of the Places main-thread SQL reported to Telemetry
- [ON TRACK] Don't store UI customization in localstore.rdf, use off-main thread JSON instead bug 559505
Improve Firefox startup (identified as a top issue in user research):
- [ON TRACK] Reduce appearance of the "profile is in use" message on startup bug 286355
- [ON TRACK] Restore windows one by one during session-restore bug 1034534 and/or load windows by descending z-order bug 1034036
- [ON TRACK] C++ version of AsyncShutdown bug 918317
Prevent performance regressions:
- [ON TRACK] Implement automatic detection & alerting for Telemetry regressions bug 1031032
- [ON TRACK] Help developers understand & diagnose Talos regressions, e.g. Firefox 33 regression tracking, Firefox 32 regressions, Firefox 31
Grow community:
- [ON TRACK] Mentor at least 5 external contributors
Networking
- [ON TRACK] Ship Network Predictor ("Seer") on nightly, using HTTP cache instead of SQLite (bug 1009122) (hurley)
- [ON TRACK] Ship current (hopefully final) IETF version of HTTP/2 preffed on in nightly (hurley)
- [ON TRACK] HTTP/2 "alt-svc" support (bug 1003448) (mcmanus)
- [ON TRACK] HTTP cache: determine if revalidation is needed w/o doing I/O (bug 983122) (sworkman)
- [ON TRACK] Network up/down link detection on all platforms (bug 939318) (bagder)
- [ON TRACK] Implement WebSocket compression extension (bug 792831) (michal)
Mobile
A*Team
For full list, see A-Team Goals 2014Q3
B2G
- [ON TRACK] Run a set of performance and correctness tests per-commit to b2g-inbound on Flame devices
- [ON TRACK] Get gaia-integration tests running on device
- [ON TRACK] Expand the FxOS Certification Suite with 1.4 support, test automation to prevent regressions, and investigation of support for non-phone devices
- [ON TRACK] Green up B2G tests on TaskCluster (joint with RelEng)
Developer Productivity
- [ON TRACK] Deploy ReviewBoard for developers to start using (joint with RelEng)
Performance
- [ON TRACK] Deploy new Talos tests for tp5o_scroll, webgl, webrtc, and mainthread I/O
- [ON TRACK] Get Datazilla alerts to beta mode (full parity with graph server alerts) with reduced noise
- [ON TRACK] Get Eideticker running against Android again with increased frequency
- [ON TRACK] Run B2G Eideticker against same branch/build combinations as our other on-device perf tests
- [ON TRACK] Stand up a Games Benchmarking system for webaudio tests running against Firefox and Chrome
Treeherder
- [ON TRACK] Deliver performance web service for ingesting and returning performance data
- [ON TRACK] Deliver a UI for viewing Talos data
Sheriffing
- [ON TRACK] Fully transition sheriffing from TBPL to Treeherder
General Automation
- [ON TRACK] Create weekly reports that describe how many tests have been added/disabled/enabled per suite and platform
- [ON TRACK] Move reftest to mozbase
- [ON TRACK] Add command executors for Marionette for Java and Python
Bugzilla
- [ON TRACK] Improve load time of related bugs; can decrease show_bug load times by up to 12%
- [ON TRACK] Minify and concatenate JS files
- [ON TRACK] Authoritative view for review history
- [ON TRACK] Rewrite docs for REST API
Community
- [ON TRACK] Create good_next_bugs (name can be adjusted) so once contributors are comfortable they can do more serious coding/problem solving on a project they are familiar with
- [ON TRACK] Monthly review of mentored bugs and projects
Web Engineering
Crash stats
- [ON TRACK] Prototype service for identifying post-crash user actions
- [ON TRACK] Hardware and performance tuning for new primary data store
- [ON TRACK] Remove older, redundant crash storage format from database
- [ON TRACK] Improve search performance and features
- [ON TRACK] Replace interfaces to deprecated external data sources
- [ON TRACK] Remove barriers to community installations
FHR
- [ON TRACK] Support search diversion plan
DXR
- [ON TRACK] Improve infrastructure.
- For example, switch to ES backend, which will enable us to build multi-language support and parallel tree indexing.
- [ON TRACK] Broaden our audience.
- Pull users away from MXR so we can shut it off. For example, add support for Rust or JS, squash MXR migration blockers.
l10n
- [ON TRACK] Get l10n build logs into a searchable data store
- [ON TRACK] Replace some buildbot functionality with a10n automation
Air Mozilla
- [ON TRACK] Prototype support for streaming media boxes
- [ON TRACK] Improve desktop user experience
SUMO and Input
- SUMO: Launch new offline SUMO app [Get Firefox on a Growth Trajectory]
- SUMO: Develop new Community Hub to a level where it can replace legacy Karma app [Enable Communities with Impact]
- SUMO: Research and prototype new experimental features (e.g. geotargeting, Instant Search, Search Suggestions) [Get Firefox on a Growth Trajectory]
- Input: Improve documentation and install to lower the bar for contribution [Enable Communities with Impact]
- Input: Ship Firefox Desktop product dashboard [Get Firefox on a Growth Trajectory]
- Input: (STRETCH) Ship Firefox OS product dashboard [Scaling FirefoxOS]
Release Engineering - Laura
- Enable capacity expansion for bare-metal releng OS X build and test slaves via hardware provided by third-party datacenters (Get Firefox on a Trajectory of Growth)
- Simplify release engineering mobile hardware infrastructure (Get Firefox on a Trajectory of Growth)
- Automate developer access to continuous integration resources to expedite debugging and standing up new job variants. (Enable Communities With Impact)
- Help enable video operability on the web by providing continuous integration for Cisco Open H.264 builds. (Get Firefox on a Trajectory of Growth)
Release Engineering - Taras
- Replace aging Firefox update service with a scalable, modern solution. (Get Firefox on a Trajectory of Growth)
- Simplify developer workflow by automating patch landing and uplift. (Enable Communities With Impact)
- Local HTTP caches in each region/datacenter: sccache, ftp.mozilla.org, pvtbuilds
- EBS < 3% of AWS bill(vs 30% in Q2)
- 80% of b2g jobs turned off in buildbot, running on taskcluster
- Turn telemetry is into a general purpose s3 ingester and analysis tool
Release Engineering Operations
- Build/Test System Performance Enhancements
- [ON TRACK] Unify releng platform architecture, using common tools and best practices, to decrease complexity and enable smoother developer engagement bug 1026109 and bug 1026110 [Get Firefox on a Trajectory of Growth, Enable Communities With Impact]
- [ON TRACK] Improve communication and response time for releng network flow requests bug 1026112 [Get Firefox on a Trajectory of Growth, Scale Firefox OS]
- [ON TRACK] Improve security for all releng windows infrastructure bug 893716 [Get Firefox on a Trajectory of Growth]
- Build/Test System Self-Serve Re-architecture
- [CARRY OVER] Design a private cloud deployment architecture for bare metal and produce a POC that supports Ubuntu 12.04 test machines. bug 963165 [Get Firefox on a Trajectory of Growth, Scale Firefox OS]
- [ON TRACK] Create self-service capability for releng hardware Firefox linux test slaves (build slaves as a stretch goal) bug 1026687 (depends on completion of previous goal) [Get Firefox on a Trajectory of Growth, Scale Firefox OS]
- [ON TRACK] Create self-service capability for releng hardware Firefox windows test slaves. bug 967064 [Get Firefox on a Growth Trajectory]
Developer Services
- [NEW] (with B-team) roll out phase 2 of new review tooling [Get Firefox on a Growth Trajectory / Enable communities with impact]
- [NEW] Upgrade existing Mercurial infrastructure to support more rapid, safe, and coordinated deployment of updates. [Get Firefox on a Growth Trajectory / Enable communities with impact]
Security & Privacy Engineering
More details here: SecurityEngineering/2014/Q3Goals
Content Security
- [NEW] Gecko Security Hooks: Finish code and debugging for New Channel API, start getting reviews (dri=tanvi)
- [NEW] Gecko Security Hooks: Create plan for addon compatibility (dri=tanvi)
- [NEW] CSP: Remove old JS implementation from mozilla-central (dri=sstamm)
- [NEW] Evangelism: Security Open Mic presentation + blog post about new CSP implementation, maybe again as brown bag. (dri=sstamm)
- [NEW] [stretch goal] CSP: Fix majority of CSP 1.1 compatibility bugs (dri=ckerschb)
Tracking Protection
- [NEW] Referer: Finish implementation of <meta> referrer control with volunteer help (dri=sstamm)
- [NEW] Land first implementation of protection in Fx 33/34 off by default. (dri=mmc)
Communications Security
- [CARRY OVER] SSL Error Reporting finish first implementation of ssl error reporting feature. (dri=grobinson)
- [NEW] HPKP - implement pinning http header (dri=cviecco)
- [NEW] Update roadmap for Cert Revocation improvements (dri=rbarnes)
- [NEW] Create a mechanism to provision phones with an alternate cert (dri=mgoodwin)
- [NEW] Add measurement/enforcement of compliance with CABF Baseline Requirements (dri=keeler)
- [NEW] Create a tool for testing CA certificate compliance and EV-readiness (dri=keeler)
- [NEW] Add support for key wrap/unwrap and ECC in WebCrypto (dri=rbarnes)
- [NEW] [stretch goal] Get CA Program data into one database (dri=kathleen)
Firefox and Platform Security
- Marifuzz fuzzer ported to and running on Flame devices.
- Update ASan and LSan work for DOMFuzzer
- Update "Bounty Stars" document with issues found by external reporters and updating DOMFuzzer to reflect these results.
- Get Clang on RelEng ready for official OS X ASan builds.
- Initial work to move CoreFuzz towards running in cloud environments.
- WebCrypto API fuzzing using Dharma fuzzer.
- Port a portion of WebRTC fuzzing from Frambois fuzzer to Dharma fuzzer.
- Peach: Improving and porting Peach 2 to Python 3.
- Public Mozilla Security Github work: Moving of fuzzing tools from Fuzzing Hg to GitHub, including work to separate harnesses from testcase generation tools.
Games Program
- Reach out to 3rd party engines en masse (also for Q4)
- Select a 3D demo for mobile
- Pick a partner demo to optimize for mobile
- Focus on supporting shipping games and maintaining platform stability
- Focus on Shared Array Buffer implementation
- WebGL Benchmarks
- Continue to work MDN documentation; get Emscripten documentation started
- GDC and MWC event support plan
Release Management
For full list, see Release Management 2014Q3 Goals.
- Create and document process for Desktop/Mobile feature fast tracking
- Determine future of ESR and how to manage this channel
- Continue desktop throttling experiment with intention of reducing throttled time while maintaining existing level of feedback
- Improve release notes with revamped template for all products
- Create B2G release model proposals and gather feedback for potential changes
- Figure out what to do with B2G Security Releases