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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 }