WebAPI/PlannedWork: Difference between revisions

no edit summary
m (fixed link)
No edit summary
 
(15 intermediate revisions by 4 users not shown)
Line 3: Line 3:


== P1 ==
== P1 ==
* [https://wiki.mozilla.org/WebAPI/Inter_App_Communication Inter App Communication]
=== Owned ===
* [https://wiki.mozilla.org/WebAPI/DataStore Data Store]
* <s>Future</s>Promises; owners: baku, mounir and annevk, [https://bugzilla.mozilla.org/show_bug.cgi?id=839064 bug 839064]
* [https://wiki.mozilla.org/WebAPI/KeboardIME IME/Keyboard API]
* AudioChannel API; owners: baku and bent, [https://bugzilla.mozilla.org/show_bug.cgi?id=853101 bug 853101] and {{bug|876631}}
* Storage: move appcache, cookies(?) and localStorage to centralized quota manager, owner: janv
* Storage: temporary/permanent storage for IDB, owner: janv
* Storage: IDB in workers, owner, bent
* inputmode: http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2013-February/038914.html, owner: mounir
* [https://github.com/slightlyoff/ServiceWorker/ Service Worker], owners: nsm, bkelly, baku
* <s>[https://wiki.mozilla.org/WebAPI/Inter_App_Communication Inter App Communication], owners: mounir, gene, ferjm</s>
 
=== Need implementer ===
* <s>[https://wiki.mozilla.org/WebAPI/DataStore Data Store], design: mounir, sicking and others</s>
* <s>Improve appcache, design: sicking</s>
** <s>Mozilla's proposal:  http://lists.w3.org/Archives/Public/public-webapps/2013JanMar/0977.html</s>
* Add a way to make the manifest file discoverable (via a manifest attribute or something similar), design: sicking, marcosc, mounir
 
=== Need design ===
* Sync API (sicking), eg. keep GMail synchronized
* Sync API (sicking), eg. keep GMail synchronized
** https://github.com/slightlyoff/BackgroundSync/ ?
* System Messages on Desktop
* System Messages on Desktop
* AudioManager (baku)
* <s>support shared workers and background workers explicitly for things like social API (?) (dougt)</s>
* Add a way to make the manifest file discoverable (via a manifest attribute or something similar)
** support web pages and apps doing something in the background - https://github.com/slightlyoff/BackgroundSync/ ?
* inputmode: http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2013-February/038914.html
* [http://dom.spec.whatwg.org/#futures DOM Futures]
* [http://github.com/mounirlamouri/storage.js storage.js]
 
* Improve appcache
** Mozilla's proposal:  http://lists.w3.org/Archives/Public/public-webapps/2013JanMar/0977.html
** Google's NavigationController:  https://github.com/slightlyoff/NavigationController/
 
* Storage: move appcache, cookies(?) and localStorage to centralized quota manager
* Storage: temporary/permanent storage for IDB
* Storage: IDB in workers
 
* support shared workers and background workers explicitly for things like social API (?) (dougt)
** support web pages and apps doing something in the background


== P2 ==
== P2 ==
Line 29: Line 30:
* Web Activities on Desktop
* Web Activities on Desktop


* Fix browser API (jlebar)
* Fix browser API (Kan-Ru (?))
** don't use iframe element
** don't use iframe element
** due to ^ can't load browser API when element is created
** due to ^ can't load browser API when element is created
Line 44: Line 45:


* Storage: Sandboxed Filesystem
* Storage: Sandboxed Filesystem
** http://w3c.github.io/filesystem-api/Overview.html
* <s>navigator.language change event (W3C HTML Bug)</s>
* API for generic LED actuators (usually camera LED, though some phones include additional ones)


== P3 ==
== P3 ==
Line 49: Line 54:
* Battery API v2 (temperature, voltage, etc.); the real world use cases are not clear but we might need that in FxOS soon enough and we should be ready
* Battery API v2 (temperature, voltage, etc.); the real world use cases are not clear but we might need that in FxOS soon enough and we should be ready


* Fix FM Radio API (jlebar)
* Fix FM Radio API
** doesn't behave sanely with multiple windows attempting to access it
** doesn't behave sanely with multiple windows attempting to access it
** will likely require major changes
** will likely require major changes
Line 57: Line 62:


* ArchiveReader prototype in Javascript
* ArchiveReader prototype in Javascript
* Speech API
* Speech API (smaug has been involved and Andre Natal has been implementing)
* Storage: Quota API
* Storage: Quota API (janv)
* Storage: Data-moving (temp -> perm)
* Storage: Data-moving (temp -> perm) (janv, bent)
* Keyboard layouts and gaming: KeyboardEvent.code (bug 865649) and KeyboardEvent.locale (bug ???) (smaug?)
* Keyboard layouts and gaming: KeyboardEvent.code (bug 865649) and KeyboardEvent.locale (bug ???) (smaug?)


Line 70: Line 75:
* Expose audio API to Firefox Desktop Internal code
* Expose audio API to Firefox Desktop Internal code


* Build a Web API dashboard similar to chromestatus.com, see if we can integrate it with the devtools UI, and what other cool things we can do with it. (ehsan)
* Build a Web API dashboard similar to chromestatus.com
** see if we can integrate it with the devtools UI, and what other cool things we can do with it. (ehsan)
* tests
* tests
* resolving intermittent test failures
* resolving intermittent test failures
Line 76: Line 82:
** make this easier
** make this easier


== Untriaged / open questions ==
== Untriaged ==
* URL parsing
* base URLs
* find and findAll methods
** needs special subclass of JS array
* Shadow DOM (wchen is working on this)
* Fetch + Service Worker (annevk continues to work on spec and nsm, baku, and bkelly are implementing)
** lots of questions here (e.g. iframes, workers)
* <s>delayed delivery of DOMContentLoaded event</s>decided this wasn't useful
** <s>after IDB data has been loaded</s>
** <s>allows for synchronous querying of data in <script blocks</s>
** <s>Ben says this isn't related:  https://docs.google.com/document/d/1EGM9xmQXbJ_rI0IFhbnACiDaaBPTSb7T3RynwD-naJg/edit?hl=en&authkey=CO7aqZAO#</s>
* Jonas' plans around necko threadsafety (notably URI/URL)
* Web Push ({{bug|1024730}})
** SimplePush is the existing non-standard API we have now
** Web Push will be implemented by other browsers and be cross-platform
** Web Push requires Service Workers
* landing some in-process work
** Broadcast Channel ({{bug|966439}})
** MessagePort and MessageChannel ({{bug|741618}}, {{bug|911972}})
** finish Blob porting ({{bug|1047483}})
===The following came from a discussion with some Gecko and Gaia developers in May 2014===
* DataStore in workers (rewrite in C++: {{bug|990554}})
* child process support for FileHandle
** FileSystem proposal is a potential future standard that can be used here
** ex. stream into IDB, hand off fully-formed blob from IDB to download manager
*** baku says magical Blob feature Jonas wants will make this easy
* apps knowing how much memory they're using (probably a debug-only feature)
* audiochannelmanager (maybe?) feature to allow video/audio recording to be muted when a phone call or alarm happens
** setVisible is used as a workaround here right now
** make oom priority controllable by system app (on mozapp mozbrowsers)
* notification of interruption by events like phone call or pressing home button or alarm
** needs UX consideration around visibility of notifications, etc.
** having an API for an app to save its state can help here (notably in OOM situations) or perhaps some state on the visibility change event indicating why that change happened
* Passing CSS transform dimensions as typed arrays or making the current JIT faster in parsing values out of strings
* Calendar API for writing a privileged calendar app
** mozCalendar?
** some primitives like storage (can DataStore work with its onchange notifications?)
** sync
*** what features do we need for some sort of local store to easily be able to sync?
** seems like writing libraries that we can provide to apps is the best solution here
* make DataStore available to privileged apps
* media player API
** e.g. rdio on the lock screen
** Google has put forward an idea here about sending media key events
** alternative is a widget
*** but then each player (e.g. rdio *and* songza *and* spotify) has to write their own custom widget
** communication:  IAC (Inter-App Communication API)?
* A standardized share Web Activity
** see https://etherpad.mozilla.org/activities
* Figuring out what we should do for apps that want to run when the device is locked (context: activities opened from lockscreen widgets, etc.)
** deal with exposing permissions when running in locked more (we can't prompt because prompts will go under the lockscreen.)
* attention screen (not sure what was meant here)
* localization
** We should look into what fast path localization support we could add to our parser/dom code. This will be a significant project given how long we've fought with figuring out the right approach here.


* do we still want to change the security model of workers as sicking at some point suggested?
[[Category:Web APIs]]
** loading has same-origin limitation
* navigator.language change event ([https://www.w3.org/Bugs/Public/show_bug.cgi?id=21289 W3C HTML Bug])
* API for generic LED actuators (usually camera LED, though some phones include additional ones)
Confirmed users
1,340

edits