CEL, a Chrome Event Logger
Last night I wrote CEL, a Chrome Event Logger, a Google Chrome extension that logs all known chrome.* API events to the Javascript console. Example use cases are:
- You wonder if there is a Chrome API event that’s triggered for some action you take in the browser. Rather than guessing what the event might be and trying to find it in the API docs, you can enable CEL, perform the action in Chrome, and see what CEL logs.
- You’re writing an extension and are unsure about whether an event is being triggered or with what arguments. Instead of adding an event listener in your own code and reloading your extension, you can just look in the CEL log.
Viewing the logging
Once installed, you can examine the CEL logging by visiting chrome://extensions, clicking to enable Developer mode, and then clicking the link next to the CEL icon where it says Inspect views: _generated_background_page.html
Manually adjusting logging
In the JS console for the extension’s background page, there are several commands you can run to adjust what is logged:
// Return a list of the chrome.* API events being logged.
CEL.enabled()
// Return a list of the chrome.* API events being ignored.
CEL.disabled()
// Enable logging of some calls (see below).
CEL.enable(name1, name2, ...)
// Disable logging of some calls (see below).
CEL.disable(name1, name2, ...)
The names you pass to CEL.enable and CEL.disable can be individual API calls (without the leading “chrome.”), or can be higher-level categories. Here are some examples:
// Enable chrome.tabs.onCreated and all chrome.webRequest.* events:
CEL.enable('tabs.onCreated', 'webRequest')
// Disable all chrome.tabs.* events and chrome.webNavigation.onCommitted
CEL.disable('tabs', 'webNavigation.onCommitted')
Note that CEL.enable
will enable all necessary higher level logging. So, for example, if you call CEL.enable('omnibox.onInputEntered')
all chrome.omnibox.*
events (that have not been explicitly disabled) will be logged. If you don’t want to enable and disable groups of calls in this way, always pass explicit API calls.
CEL.disabled
will show you the names of individual calls that are disabled, as well as any disabled higher levels.
Global enable / disable
The extension provides a context menu item that lets you globally enable or disable logging.
Installation from the Chrome web store
Go to http://bit.ly/chrome-event-logger which will redirect you to the CEL page in the CWS.
Tracking the development version
If you want the development version, you can install the extension by visting https://fluiddb.fluidinfo.com/about/chrome-event-logger/fluidinfo.com/chrome.crx. Chrome will warn you that extensions cannot be installed from non-Chrome Web Store URLs but will download the .crx file in any case. Open chrome://extensions and drag the .crx file you just downloaded onto that page.
Installation from source
The source to the extension is available on Github. Here’s how to clone and install it.
- Download the repo: git clone http://github.com/terrycojones/chrome-event-logger
- In Chrome, go to chrome://extensions
- Click Developer mode
- Click Load Unpacked Extension…
- Navigate to the directory where you cloned the repo and click Open
You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.