Mercurial > powerbox
annotate extension/modules/content-injector.js @ 5:c01a64fefbf5 default tip
Added mock 'capability request' page.
author | Atul Varma <varmaa@toolness.com> |
---|---|
date | Fri, 07 Aug 2009 14:20:28 -0700 |
parents | 1c02976d8809 |
children |
rev | line source |
---|---|
2
889c2fd4c9cf
window.powerbox.request() is now available on every content window.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
1 var EXPORTED_SYMBOLS = ["init"]; |
889c2fd4c9cf
window.powerbox.request() is now available on every content window.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
2 |
889c2fd4c9cf
window.powerbox.request() is now available on every content window.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
3 const Cc = Components.classes; |
889c2fd4c9cf
window.powerbox.request() is now available on every content window.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
4 const Ci = Components.interfaces; |
889c2fd4c9cf
window.powerbox.request() is now available on every content window.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
5 const Cu = Components.utils; |
889c2fd4c9cf
window.powerbox.request() is now available on every content window.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
6 |
3
413435fc6202
We now show a notification box when a page calls window.powerbox.request().
Atul Varma <varmaa@toolness.com>
parents:
2
diff
changeset
|
7 const REQUEST_BOX_NAME = "powerbox_superpower_request"; |
413435fc6202
We now show a notification box when a page calls window.powerbox.request().
Atul Varma <varmaa@toolness.com>
parents:
2
diff
changeset
|
8 const REQUEST_BOX_TEXT = "This web page wants superpowers."; |
413435fc6202
We now show a notification box when a page calls window.powerbox.request().
Atul Varma <varmaa@toolness.com>
parents:
2
diff
changeset
|
9 const REQUEST_BOX_BUTTON_TEXT = "Huh?"; |
413435fc6202
We now show a notification box when a page calls window.powerbox.request().
Atul Varma <varmaa@toolness.com>
parents:
2
diff
changeset
|
10 |
2
889c2fd4c9cf
window.powerbox.request() is now available on every content window.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
11 Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); |
889c2fd4c9cf
window.powerbox.request() is now available on every content window.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
12 |
3
413435fc6202
We now show a notification box when a page calls window.powerbox.request().
Atul Varma <varmaa@toolness.com>
parents:
2
diff
changeset
|
13 function getParentChromeWindow(window) { |
413435fc6202
We now show a notification box when a page calls window.powerbox.request().
Atul Varma <varmaa@toolness.com>
parents:
2
diff
changeset
|
14 var mainWindow = window.QueryInterface(Ci.nsIInterfaceRequestor) |
413435fc6202
We now show a notification box when a page calls window.powerbox.request().
Atul Varma <varmaa@toolness.com>
parents:
2
diff
changeset
|
15 .getInterface(Ci.nsIWebNavigation) |
413435fc6202
We now show a notification box when a page calls window.powerbox.request().
Atul Varma <varmaa@toolness.com>
parents:
2
diff
changeset
|
16 .QueryInterface(Ci.nsIDocShellTreeItem) |
413435fc6202
We now show a notification box when a page calls window.powerbox.request().
Atul Varma <varmaa@toolness.com>
parents:
2
diff
changeset
|
17 .rootTreeItem |
413435fc6202
We now show a notification box when a page calls window.powerbox.request().
Atul Varma <varmaa@toolness.com>
parents:
2
diff
changeset
|
18 .QueryInterface(Ci.nsIInterfaceRequestor) |
413435fc6202
We now show a notification box when a page calls window.powerbox.request().
Atul Varma <varmaa@toolness.com>
parents:
2
diff
changeset
|
19 .getInterface(Ci.nsIDOMWindow); |
413435fc6202
We now show a notification box when a page calls window.powerbox.request().
Atul Varma <varmaa@toolness.com>
parents:
2
diff
changeset
|
20 return mainWindow.wrappedJSObject; |
413435fc6202
We now show a notification box when a page calls window.powerbox.request().
Atul Varma <varmaa@toolness.com>
parents:
2
diff
changeset
|
21 } |
413435fc6202
We now show a notification box when a page calls window.powerbox.request().
Atul Varma <varmaa@toolness.com>
parents:
2
diff
changeset
|
22 |
413435fc6202
We now show a notification box when a page calls window.powerbox.request().
Atul Varma <varmaa@toolness.com>
parents:
2
diff
changeset
|
23 function showRequestNotificationBox(window, caps, callback) { |
413435fc6202
We now show a notification box when a page calls window.powerbox.request().
Atul Varma <varmaa@toolness.com>
parents:
2
diff
changeset
|
24 var tabbrowser = getParentChromeWindow(window).getBrowser(); |
413435fc6202
We now show a notification box when a page calls window.powerbox.request().
Atul Varma <varmaa@toolness.com>
parents:
2
diff
changeset
|
25 var browser = tabbrowser.getBrowserForDocument(window.document); |
413435fc6202
We now show a notification box when a page calls window.powerbox.request().
Atul Varma <varmaa@toolness.com>
parents:
2
diff
changeset
|
26 |
413435fc6202
We now show a notification box when a page calls window.powerbox.request().
Atul Varma <varmaa@toolness.com>
parents:
2
diff
changeset
|
27 if (browser) { |
413435fc6202
We now show a notification box when a page calls window.powerbox.request().
Atul Varma <varmaa@toolness.com>
parents:
2
diff
changeset
|
28 var nBox = tabbrowser.getNotificationBox(browser); |
413435fc6202
We now show a notification box when a page calls window.powerbox.request().
Atul Varma <varmaa@toolness.com>
parents:
2
diff
changeset
|
29 |
413435fc6202
We now show a notification box when a page calls window.powerbox.request().
Atul Varma <varmaa@toolness.com>
parents:
2
diff
changeset
|
30 var oldNotification = nBox.getNotificationWithValue(REQUEST_BOX_NAME); |
413435fc6202
We now show a notification box when a page calls window.powerbox.request().
Atul Varma <varmaa@toolness.com>
parents:
2
diff
changeset
|
31 if (oldNotification) |
413435fc6202
We now show a notification box when a page calls window.powerbox.request().
Atul Varma <varmaa@toolness.com>
parents:
2
diff
changeset
|
32 nBox.removeNotification(oldNotification); |
413435fc6202
We now show a notification box when a page calls window.powerbox.request().
Atul Varma <varmaa@toolness.com>
parents:
2
diff
changeset
|
33 |
5
c01a64fefbf5
Added mock 'capability request' page.
Atul Varma <varmaa@toolness.com>
parents:
4
diff
changeset
|
34 function onClickButton() { |
c01a64fefbf5
Added mock 'capability request' page.
Atul Varma <varmaa@toolness.com>
parents:
4
diff
changeset
|
35 // TODO: Implement a real callback. |
c01a64fefbf5
Added mock 'capability request' page.
Atul Varma <varmaa@toolness.com>
parents:
4
diff
changeset
|
36 const CAP_URI = "chrome://powerbox/content/request.html"; |
c01a64fefbf5
Added mock 'capability request' page.
Atul Varma <varmaa@toolness.com>
parents:
4
diff
changeset
|
37 tabbrowser.selectedTab = tabbrowser.addTab(CAP_URI); |
c01a64fefbf5
Added mock 'capability request' page.
Atul Varma <varmaa@toolness.com>
parents:
4
diff
changeset
|
38 } |
c01a64fefbf5
Added mock 'capability request' page.
Atul Varma <varmaa@toolness.com>
parents:
4
diff
changeset
|
39 |
3
413435fc6202
We now show a notification box when a page calls window.powerbox.request().
Atul Varma <varmaa@toolness.com>
parents:
2
diff
changeset
|
40 nBox.appendNotification(REQUEST_BOX_TEXT, |
413435fc6202
We now show a notification box when a page calls window.powerbox.request().
Atul Varma <varmaa@toolness.com>
parents:
2
diff
changeset
|
41 REQUEST_BOX_NAME, |
413435fc6202
We now show a notification box when a page calls window.powerbox.request().
Atul Varma <varmaa@toolness.com>
parents:
2
diff
changeset
|
42 null, |
413435fc6202
We now show a notification box when a page calls window.powerbox.request().
Atul Varma <varmaa@toolness.com>
parents:
2
diff
changeset
|
43 nBox.PRIORITY_INFO_MEDIUM, |
413435fc6202
We now show a notification box when a page calls window.powerbox.request().
Atul Varma <varmaa@toolness.com>
parents:
2
diff
changeset
|
44 [{accessKey: null, |
5
c01a64fefbf5
Added mock 'capability request' page.
Atul Varma <varmaa@toolness.com>
parents:
4
diff
changeset
|
45 callback: onClickButton, |
3
413435fc6202
We now show a notification box when a page calls window.powerbox.request().
Atul Varma <varmaa@toolness.com>
parents:
2
diff
changeset
|
46 label: REQUEST_BOX_BUTTON_TEXT, |
413435fc6202
We now show a notification box when a page calls window.powerbox.request().
Atul Varma <varmaa@toolness.com>
parents:
2
diff
changeset
|
47 popup: null}]); |
413435fc6202
We now show a notification box when a page calls window.powerbox.request().
Atul Varma <varmaa@toolness.com>
parents:
2
diff
changeset
|
48 } |
413435fc6202
We now show a notification box when a page calls window.powerbox.request().
Atul Varma <varmaa@toolness.com>
parents:
2
diff
changeset
|
49 } |
413435fc6202
We now show a notification box when a page calls window.powerbox.request().
Atul Varma <varmaa@toolness.com>
parents:
2
diff
changeset
|
50 |
2
889c2fd4c9cf
window.powerbox.request() is now available on every content window.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
51 function buildRequestor(window) { |
889c2fd4c9cf
window.powerbox.request() is now available on every content window.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
52 return function request(caps, callback) { |
889c2fd4c9cf
window.powerbox.request() is now available on every content window.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
53 if (!(typeof(caps) == "object" || |
889c2fd4c9cf
window.powerbox.request() is now available on every content window.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
54 typeof(caps) == "string")) |
889c2fd4c9cf
window.powerbox.request() is now available on every content window.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
55 throw new Error("Must provide capabilities as first parameter."); |
889c2fd4c9cf
window.powerbox.request() is now available on every content window.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
56 |
889c2fd4c9cf
window.powerbox.request() is now available on every content window.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
57 if (typeof(callback) != "function") |
889c2fd4c9cf
window.powerbox.request() is now available on every content window.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
58 throw new Error("Must provide callback as second parameter"); |
889c2fd4c9cf
window.powerbox.request() is now available on every content window.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
59 |
889c2fd4c9cf
window.powerbox.request() is now available on every content window.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
60 if (typeof(caps) == "object") |
889c2fd4c9cf
window.powerbox.request() is now available on every content window.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
61 caps = new XPCSafeJSObjectWrapper(caps); |
889c2fd4c9cf
window.powerbox.request() is now available on every content window.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
62 callback = new XPCSafeJSObjectWrapper(callback); |
889c2fd4c9cf
window.powerbox.request() is now available on every content window.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
63 |
3
413435fc6202
We now show a notification box when a page calls window.powerbox.request().
Atul Varma <varmaa@toolness.com>
parents:
2
diff
changeset
|
64 showRequestNotificationBox(window, caps, callback); |
2
889c2fd4c9cf
window.powerbox.request() is now available on every content window.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
65 }; |
889c2fd4c9cf
window.powerbox.request() is now available on every content window.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
66 } |
889c2fd4c9cf
window.powerbox.request() is now available on every content window.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
67 |
4
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
68 // Taken from Firebug's content/firebug/tabWatcher.js. |
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
69 function safeGetName(request) { |
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
70 try { |
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
71 return request.name; |
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
72 } catch (exc) { |
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
73 return null; |
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
74 } |
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
75 } |
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
76 |
2
889c2fd4c9cf
window.powerbox.request() is now available on every content window.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
77 var listener = { |
889c2fd4c9cf
window.powerbox.request() is now available on every content window.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
78 QueryInterface : XPCOMUtils.generateQI([Ci.nsIWebProgressListener, |
889c2fd4c9cf
window.powerbox.request() is now available on every content window.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
79 Ci.nsISupportsWeakReference]), |
889c2fd4c9cf
window.powerbox.request() is now available on every content window.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
80 |
4
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
81 // Much of this is taken from Firebug's content/firebug/tabWatcher.js, |
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
82 // specifically the FrameProgressListener object. |
2
889c2fd4c9cf
window.powerbox.request() is now available on every content window.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
83 onStateChange : function (aWebProgress, aRequest, |
889c2fd4c9cf
window.powerbox.request() is now available on every content window.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
84 aStateFlags, aStatus) { |
4
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
85 if (aStateFlags & Ci.nsIWebProgressListener.STATE_IS_REQUEST && |
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
86 aStateFlags & Ci.nsIWebProgressListener.STATE_START) { |
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
87 // We need to get the hook in as soon as the new DOMWindow is |
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
88 // created, but before it starts executing any scripts in the |
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
89 // page. After lengthy analysis, it seems that the start of |
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
90 // these "dummy" requests is the only state that works. |
2
889c2fd4c9cf
window.powerbox.request() is now available on every content window.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
91 |
4
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
92 // TODO: Firebug's code mentions that XHTML doesn't dispatch |
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
93 // any of these dummy requests, so we should probably use the |
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
94 // Firebug's XHTML workaround here. |
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
95 var safeName = safeGetName(aRequest); |
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
96 var window = aWebProgress.DOMWindow; |
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
97 if (window && window.wrappedJSObject && |
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
98 (safeName == "about:layout-dummy-request" || |
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
99 safeName == "about:document-onload-blocker")) { |
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
100 // TODO: Firebug's code mentions that about:blank causes strange |
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
101 // behavior here; I don't think it should apply to our use case, |
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
102 // though. |
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
103 var sandbox = Cu.Sandbox(window); |
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
104 sandbox.importFunction(buildRequestor(window)); |
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
105 sandbox.window = window.wrappedJSObject; |
2
889c2fd4c9cf
window.powerbox.request() is now available on every content window.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
106 |
4
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
107 function setupPowerbox() { |
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
108 window.powerbox = {request: request}; |
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
109 } |
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
110 |
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
111 Cu.evalInSandbox("(" + setupPowerbox.toString() + ")();", sandbox); |
2
889c2fd4c9cf
window.powerbox.request() is now available on every content window.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
112 } |
889c2fd4c9cf
window.powerbox.request() is now available on every content window.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
113 } |
889c2fd4c9cf
window.powerbox.request() is now available on every content window.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
114 }, |
889c2fd4c9cf
window.powerbox.request() is now available on every content window.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
115 |
4
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
116 // Stubs for the nsIWebProgressListener interfaces which we don't use. |
2
889c2fd4c9cf
window.powerbox.request() is now available on every content window.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
117 onProgressChange : function() { }, |
889c2fd4c9cf
window.powerbox.request() is now available on every content window.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
118 onLocationChange : function() { }, |
889c2fd4c9cf
window.powerbox.request() is now available on every content window.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
119 onStatusChange : function() { }, |
889c2fd4c9cf
window.powerbox.request() is now available on every content window.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
120 onSecurityChange : function() { } |
889c2fd4c9cf
window.powerbox.request() is now available on every content window.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
121 }; |
889c2fd4c9cf
window.powerbox.request() is now available on every content window.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
122 |
4
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
123 function init(window) { |
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
124 var tabbrowser = window.getBrowser(); |
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
125 |
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
126 function addListener(browser) { |
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
127 browser.addProgressListener(listener, |
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
128 Ci.nsIWebProgress.NOTIFY_STATE_DOCUMENT); |
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
129 } |
2
889c2fd4c9cf
window.powerbox.request() is now available on every content window.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
130 |
4
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
131 tabbrowser.tabContainer.addEventListener( |
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
132 "TabOpen", |
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
133 function onTabOpen(event) { addListener(event.target.linkedBrowser); }, |
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
134 false |
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
135 ); |
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
136 |
1c02976d8809
Changed to Firebug's progress listener, which allows us to inject our code before any scripts are executed on target pages.
Atul Varma <varmaa@toolness.com>
parents:
3
diff
changeset
|
137 tabbrowser.browsers.forEach(function(browser) { addListener(browser); }); |
2
889c2fd4c9cf
window.powerbox.request() is now available on every content window.
Atul Varma <varmaa@toolness.com>
parents:
diff
changeset
|
138 } |