Closed
Bug 1171256
Opened 8 years ago
Closed 8 years ago
Add an API similar to Chrome's webNavigation
Categories
(Toolkit :: General, defect)
Toolkit
General
Tracking
()
RESOLVED
FIXED
mozilla41
Tracking | Status | |
---|---|---|
firefox41 | --- | fixed |
People
(Reporter: billm, Assigned: billm)
References
(Blocks 1 open bug)
Details
(Keywords: dev-doc-complete)
Attachments
(1 file, 1 obsolete file)
15.36 KB,
patch
|
mossop
:
review+
|
Details | Diff | Splinter Review |
This needs some tests, but I'd like to get some initial feedback.
Attachment #8614970 -
Flags: review?(dtownsend)
Assignee | ||
Updated•8 years ago
|
Blocks: webextensions-chrome-gaps
Comment 1•8 years ago
|
||
Comment on attachment 8614970 [details] [diff] [review] patch Review of attachment 8614970 [details] [diff] [review]: ----------------------------------------------------------------- Looking good so far ::: toolkit/modules/addons/WebNavigation.jsm @@ +24,5 @@ > + init() { > + Services.mm.addMessageListener("Extension:DOMContentLoaded", this); > + Services.mm.addMessageListener("Extension:StateChange", this); > + Services.mm.addMessageListener("Extension:LocationChange", this); > + Services.mm.loadFrameScript("resource://gre/modules/WebNavigationContent.js", true); If you do this and a tab already has that framescript loaded does it get loaded a second time? @@ +49,5 @@ > + > + removeListener(type, listener) { > + let listeners = this.listeners.get(type); > + listeners.delete(listener); > + if (listeners.size == 0) { This will throw if an extension double-removes. Maybe that's ok though it's probably a bad exception for the developer to decipher. @@ +181,5 @@ > + }, > + removeListener(listener) { > + return Manager.removeListener("onReferenceFragmentUpdated", listener); > + } > +}; A lot of duplication here that you could probably simplify: for (let event of ["onBeforeNavigate", ...]) { WebNavigation[event] = { addListener: Manager.addListener.bind(Manager, event), removeListener: Manager.removeListener.bind(Manager, event), } } @@ +205,5 @@ > + > + // Not sure how to implement these yet. > + //onCreatedNavigationTarget, > + //onHistoryStateUpdated, > +}; Also note getFrame and getAllFrames
Attachment #8614970 -
Flags: review?(dtownsend) → feedback+
Assignee | ||
Comment 2•8 years ago
|
||
OK, here's a new version with a test.
Attachment #8614970 -
Attachment is obsolete: true
Attachment #8617685 -
Flags: review?(dtownsend)
Comment 3•8 years ago
|
||
Comment on attachment 8617685 [details] [diff] [review] patch v2 Review of attachment 8617685 [details] [diff] [review]: ----------------------------------------------------------------- Looks good. The chrome docs talk about some filtering options for all this but I can't find any examples of it in the docs or examples. Do you know anything about it?
Attachment #8617685 -
Flags: review?(dtownsend) → review+
Comment 5•8 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/7eca38a74be8
Status: NEW → RESOLVED
Closed: 8 years ago
status-firefox41:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla41
Updated•8 years ago
|
Keywords: dev-doc-needed
Comment 6•8 years ago
|
||
-> https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/webNavigation
Keywords: dev-doc-needed → dev-doc-complete
You need to log in
before you can comment on or make changes to this bug.
Description
•