An early design document containing an unsorted list of things we've want to do as extension APIs. Some of these ideas have now been implemented. |
API Wish List
Name | Notes | Use cases | Priority |
---|---|---|---|
Storage | Should come for free via HTML5 APIs. | ||
New Tab Page | Replace it entirely, or add modules (iframes?) to it. | ||
Content layers | A separate DOM for use by extensions that renders on top of a content DOM. Extensions (user scripts) can access both, but the top layer's CSS is isolated from the bottom layer. | Drawing selection UI, like FlashGot | |
Downloads | APIs to manipulate the download system. | DownThemAll | |
Element-specific actions | Tell Chromium to somehow highlight a DOM element and advertise that an action is possible. | Send this image to a friend on Facebook | |
Keyboard and mouse handlers | Extensions should be able to listen to events over the entire browser UI. | CtrlTab Preview, Gestures | |
Launch external programs | Just a simple command line, for more interaction with native code use NPAPI | Download accelerators | |
Network | Listen for requests, watch data go by, etc. | Cloud-based history | |
Omnibox | Take part in omnibox sessions. | Make cloud-based bookmark and history first-class in Chromium UI | |
Settings | Interact with various Chromium settings, like what pages JavaScript is enabled for, what pages cookies are sent to, user agent settings, proxy settings, etc | NoScript, privacy filters, proxy switchers | |
Shelves and bottom bars | They may be able to be the same thing. Shelves have a different default presentation than bottom bars (constrained height, like a toolbar, different background and edges). | Download status, Firebug | |
Sidebars | Delicious | ||
Pop-out areas | Ability to render web content outside the viewport | Pull out areas from toolbars, shelves | |
Internationalization | This is particularly necessary in cases where UI is declarative. For example, if we have declarative content gleam or tool buttons. It is also useful for internationalizing HTML without having to use JS at runtime. | ||
Read-only user scripts | Read-only javascript access to the DOM. | ||
Themes | Customizing the look and feel of the interface. We might surface them to users as different than extensions, but they will use a lot of the underlying infrastructure. | It turns out people like to decorate. | |
Read-write user scripts | Inject javascript into pages. | Like Greasemonkey | |
Async DOM | An idea to allow manipulation of the DOM asynchronously from the browser process. | This would allow Greasemonkey-type use cases without having to require authors split apart their code into separate processes. It should also be more efficient. | |
Navigation Interception | APIs for an extension to intercept a navigation event and modify it. | Automated file format converters, auto-incognito mode on certain website URLs | |
History | APIs to the built-in history and bookmark system. For example, to be notified when the star button is pressed, or to push items into either database. | Synchronization | |
Thumbnail | Generate thumbnails from open tabs. Access read and write to the thumbnail database. | CtrlTab Preview | |
Menus | add items to in-page context menus and system menus | bookmarking and recommendation systems, many more |
Showing 22 items