the Chromium logo

The Chromium Projects

API Wish List

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.

Name Notes Use cases Priority
Launch external programs Just a simple command line, for more interaction with native code use NPAPI Download accelerators
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
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-write user scripts Inject javascript into pages. Like Greasemonkey
Thumbnail Generate thumbnails from open tabs. Access read and write to the thumbnail database. CtrlTab Preview
Sidebars Delicious
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
Keyboard and mouse handlers Extensions should be able to listen to events over the entire browser UI. CtrlTab Preview, Gestures
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.
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
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
Read-only user scripts Read-only javascript access to the DOM.
Pop-out areas Ability to render web content outside the viewport Pull out areas from toolbars, shelves
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
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
Menus add items to in-page context menus and system menus bookmarking and recommendation systems, many more
Downloads APIs to manipulate the download system. DownThemAll
New Tab Page Replace it entirely, or add modules (iframes?) to it.
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.
Storage Should come for free via HTML5 APIs.
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