webNavigation.onCommitted
=========================

Fired when a navigation is committed. At least part of the new document has been received from the server and the browser has decided to switch to the new document.

Syntax
------


```js
browser.webNavigation.onCommitted.addListener(
  listener,                 // function
  filter                    // optional object
)
browser.webNavigation.onCommitted.removeListener(listener)
browser.webNavigation.onCommitted.hasListener(listener)
```


Events have three functions:

`addListener(listener)`

Adds a listener to this event.

`removeListener(listener)`

Stop listening to this event. The `listener` argument is the listener to remove.

`hasListener(listener)`

Check whether `listener` is registered for this event. Returns `true` if it is listening, `false` otherwise.

addListener syntax
------------------

### Parameters

`listener`

The function called when this event occurs. The function is passed this argument:

`details`

`object`. Details about the navigation event. See the details section for more information.


`filter` Optional

`object`. An object containing a single property `url`, which is an `Array` of `events.UrlFilter` objects. If you include this parameter, then the event fires only for transitions to URLs which match at least one `UrlFilter` in the array. If you omit this parameter, the event fires for all transitions.

Additional objects
------------------

### details

`tabId`

`integer`. The ID of the tab in which the navigation is about to occur.

`url`

`string`. The URL to which the given frame will navigate.

`processId` Optional 
Deprecated

`integer`. This value is not set in modern browsers. When it was set, it represented the ID of the process running the renderer for this tab.

`frameId`

`integer`. Frame in which the navigation will occur. `0` indicates that navigation happens in the tab's top-level browsing context, not in a nested `<iframe>`. A positive value indicates that navigation happens in a nested iframe. Frame IDs are unique for a given tab and process.

`parentFrameId`

`integer`. ID of this frame's parent. Set to `-1` if this is a top-level frame.

`timeStamp`

`number`. The time that the navigation was committed, in milliseconds since the epoch.

`transitionType`

`transitionType`. The reason for the navigation. (For example, `"link"` if the user clicked a link, or `"reload"` if the user reloaded the page.)

`transitionQualifiers`

`Array` of `transitionQualifier`. Extra information about the navigation: for example, whether there was a server or client redirect.

Browser compatibility
---------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Examples
--------

Logs the target URLs and extra transition information for `onCommitted`, if the target URL's hostname contains "example.com" or starts with "developer".


```js
const filter = {
  url: [{ hostContains: "example.com" }, { hostPrefix: "developer" }],
};

function logOnCommitted(details) {
  console.log(`target URL: ${details.url}`);
  console.log(`transition type: ${details.transitionType}`);
  console.log(`transition qualifiers: ${details.transitionQualifiers}`);
}

browser.webNavigation.onCommitted.addListener(logOnCommitted, filter);
```

### Example extensions

* navigation-stats

**Note:** This API is based on Chromium's `chrome.webNavigation` API. This documentation is derived from `web_navigation.json` in the Chromium code.