summaryrefslogtreecommitdiffstats
path: root/chrome/renderer/resources
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/renderer/resources')
-rw-r--r--chrome/renderer/resources/event_bindings.js31
-rw-r--r--chrome/renderer/resources/extension_process_bindings.js54
-rw-r--r--chrome/renderer/resources/greasemonkey_api.js4
-rw-r--r--chrome/renderer/resources/renderer_extension_bindings.js13
4 files changed, 34 insertions, 68 deletions
diff --git a/chrome/renderer/resources/event_bindings.js b/chrome/renderer/resources/event_bindings.js
index 54dd108..f11ec78 100644
--- a/chrome/renderer/resources/event_bindings.js
+++ b/chrome/renderer/resources/event_bindings.js
@@ -1,5 +1,5 @@
-// Copyright (c) 2009 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
+// Copyright (c) 2009 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// -----------------------------------------------------------------------------
@@ -29,9 +29,6 @@ var chrome = chrome || {};
// A map of event names to the event object that is registered to that name.
chrome.Event.attached_ = {};
- // An array of all attached event objects, used for detaching on unload.
- chrome.Event.allAttached_ = [];
-
// Dispatches a named event with the given JSON array, which is deserialized
// before dispatch. The JSON array is the list of arguments that will be
// sent with the event callback.
@@ -108,7 +105,8 @@ var chrome = chrome || {};
// name.
chrome.Event.prototype.attach_ = function() {
AttachEvent(this.eventName_);
- chrome.Event.allAttached_[chrome.Event.allAttached_.length] = this;
+ this.unloadHandler_ = this.detach_.bind(this);
+ window.addEventListener('unload', this.unloadHandler_, false);
if (!this.eventName_)
return;
@@ -122,9 +120,7 @@ var chrome = chrome || {};
// Detaches this event object from its name.
chrome.Event.prototype.detach_ = function() {
- var i = chrome.Event.allAttached_.indexOf(this);
- if (i >= 0)
- delete chrome.Event.allAttached_[i];
+ window.removeEventListener('unload', this.unloadHandler_, false);
DetachEvent(this.eventName_);
if (!this.eventName_)
return;
@@ -136,21 +132,4 @@ var chrome = chrome || {};
delete chrome.Event.attached_[this.eventName_];
};
-
- // Load events. Note that onUnload_ might not always fire, since Chrome will
- // terminate renderers on shutdown.
- chrome.onLoad_ = new chrome.Event();
- chrome.onUnload_ = new chrome.Event();
-
- // This is called by native code when the DOM is ready.
- chrome.dispatchOnLoad_ = function() {
- chrome.onLoad_.dispatch();
- delete chrome.dispatchOnLoad_;
- }
-
- chrome.dispatchOnUnload_ = function() {
- chrome.onUnload_.dispatch();
- for (var i in chrome.Event.allAttached_)
- chrome.Event.allAttached_[i].detach_();
- }
})();
diff --git a/chrome/renderer/resources/extension_process_bindings.js b/chrome/renderer/resources/extension_process_bindings.js
index 93d9f50..ea6481c 100644
--- a/chrome/renderer/resources/extension_process_bindings.js
+++ b/chrome/renderer/resources/extension_process_bindings.js
@@ -51,7 +51,7 @@ var chrome;
validator.validate(args[i], schemas[i]);
if (validator.errors.length == 0)
continue;
-
+
var message = "Invalid value for argument " + i + ". ";
for (var i = 0, err; err = validator.errors[i]; i++) {
if (err.path) {
@@ -83,7 +83,7 @@ var chrome;
console.error("Error during " + name + ": " + error);
return;
}
-
+
if (callbacks[requestId]) {
if (response) {
callbacks[requestId](JSON.parse(response));
@@ -125,7 +125,7 @@ var chrome;
chrome.types.pInt,
chrome.types.fun
];
-
+
chrome.windows.getCurrent = function(callback) {
validate(arguments, arguments.callee.params);
sendRequest(GetCurrentWindow, null, callback);
@@ -134,7 +134,7 @@ var chrome;
chrome.windows.getCurrent.params = [
chrome.types.fun
];
-
+
chrome.windows.getLastFocused = function(callback) {
validate(arguments, arguments.callee.params);
sendRequest(GetLastFocusedWindow, null, callback);
@@ -153,7 +153,7 @@ var chrome;
chrome.types.optBool,
chrome.types.fun
];
-
+
chrome.windows.create = function(createData, callback) {
validate(arguments, arguments.callee.params);
sendRequest(CreateWindow, createData, callback);
@@ -200,7 +200,7 @@ var chrome;
chrome.types.pInt,
chrome.types.optFun
];
-
+
// sends (windowId).
// *WILL* be followed by tab-attached AND then tab-selection-changed.
chrome.windows.onCreated = new chrome.Event("window-created");
@@ -210,7 +210,7 @@ var chrome;
// tab-selection-changed -- one for each tab that was contained in the window
// that closed
chrome.windows.onRemoved = new chrome.Event("window-removed");
-
+
// sends (windowId).
chrome.windows.onFocusChanged =
new chrome.Event("window-focus-changed");
@@ -229,7 +229,7 @@ var chrome;
chrome.types.pInt,
chrome.types.fun
];
-
+
chrome.tabs.getSelected = function(windowId, callback) {
validate(arguments, arguments.callee.params);
sendRequest(GetSelectedTab, windowId, callback);
@@ -250,7 +250,7 @@ var chrome;
chrome.types.fun
];
- chrome.tabs.create = function(tab, callback) {
+ chrome.tabs.create = function(tab, callback) {
validate(arguments, arguments.callee.params);
sendRequest(CreateTab, tab, callback);
};
@@ -301,7 +301,7 @@ var chrome;
},
chrome.types.optFun
];
-
+
chrome.tabs.remove = function(tabId, callback) {
validate(arguments, arguments.callee.params);
sendRequest(RemoveTab, tabId, callback);
@@ -316,26 +316,26 @@ var chrome;
// Will *NOT* be followed by tab-attached - it is implied.
// *MAY* be followed by tab-selection-changed.
chrome.tabs.onCreated = new chrome.Event("tab-created");
-
+
// Sends (tabId, {ChangedProps}).
chrome.tabs.onUpdated = new chrome.Event("tab-updated");
// Sends (tabId, {windowId, fromIndex, toIndex}).
// Tabs can only "move" within a window.
chrome.tabs.onMoved = new chrome.Event("tab-moved");
-
+
// Sends (tabId, {windowId}).
- chrome.tabs.onSelectionChanged =
+ chrome.tabs.onSelectionChanged =
new chrome.Event("tab-selection-changed");
-
+
// Sends (tabId, {newWindowId, newPosition}).
// *MAY* be followed by tab-selection-changed.
chrome.tabs.onAttached = new chrome.Event("tab-attached");
-
+
// Sends (tabId, {oldWindowId, oldPosition}).
// *WILL* be followed by tab-selection-changed.
chrome.tabs.onDetached = new chrome.Event("tab-detached");
-
+
// Sends (tabId).
// *WILL* be followed by tab-selection-changed.
// Will *NOT* be followed or preceded by tab-detached.
@@ -351,7 +351,7 @@ var chrome;
sendRequest(EnablePageAction, [pageActionId, action]);
}
- chrome.pageActions.enableForTab.params = [
+ chrome.pageActions.enableForTab.params = [
chrome.types.str,
{
type: "object",
@@ -380,7 +380,7 @@ var chrome;
chrome.types.singleOrListOf(chrome.types.pInt),
chrome.types.fun
];
-
+
chrome.bookmarks.getChildren = function(id, callback) {
validate(arguments, arguments.callee.params);
sendRequest(GetBookmarkChildren, id, callback);
@@ -390,12 +390,12 @@ var chrome;
chrome.types.pInt,
chrome.types.fun
];
-
+
chrome.bookmarks.getTree = function(callback) {
validate(arguments, arguments.callee.params);
sendRequest(GetBookmarkTree, null, callback);
};
-
+
// TODO(erikkay): allow it to take an optional id as a starting point
// BUG=13727
chrome.bookmarks.getTree.params = [
@@ -497,7 +497,7 @@ var chrome;
// Sends (id, {parentId, index, oldParentId, oldIndex})
chrome.bookmarks.onMoved = new chrome.Event("bookmark-moved");
-
+
// Sends (id, [childrenIds])
chrome.bookmarks.onChildrenReordered =
new chrome.Event("bookmark-children-reordered");
@@ -508,14 +508,14 @@ var chrome;
// Self.
chrome.self = chrome.self || {};
chrome.self.onConnect = new chrome.Event("channel-connect");
-
+
// Register
- chrome.onLoad_.addListener(function() {
+ chrome.self.register_ = function() {
var extensionId = RegisterExtension();
- chrome.onUnload_.addListener(function() {
- UnregisterExtension(extensionId);
- });
- });
+ window.addEventListener('unload', function() {
+ UnregisterExtension(extensionId); }, false);
+ delete chrome.self.register_;
+ }
chrome.self.getViews = function() {
return GetViews();
diff --git a/chrome/renderer/resources/greasemonkey_api.js b/chrome/renderer/resources/greasemonkey_api.js
index 0ad24f0..3ce1d38 100644
--- a/chrome/renderer/resources/greasemonkey_api.js
+++ b/chrome/renderer/resources/greasemonkey_api.js
@@ -1,5 +1,5 @@
-// Copyright (c) 2009 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
+// Copyright (c) 2009 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// -----------------------------------------------------------------------------
diff --git a/chrome/renderer/resources/renderer_extension_bindings.js b/chrome/renderer/resources/renderer_extension_bindings.js
index f6222d7..31b97ed 100644
--- a/chrome/renderer/resources/renderer_extension_bindings.js
+++ b/chrome/renderer/resources/renderer_extension_bindings.js
@@ -10,7 +10,6 @@
var chrome = chrome || {};
(function () {
native function OpenChannelToExtension(id);
- native function CloseChannel(portId);
native function PostMessage(portId, msg);
// Port object. Represents a connection to another script context through
@@ -67,12 +66,6 @@ var chrome = chrome || {};
PostMessage(this.portId_, JSON.stringify(msg));
};
- // Disconnects the port from the other end.
- chrome.Port.prototype.disconnect = function() {
- delete chrome.Port.ports_[this.portId_];
- CloseChannel(this.portId_);
- }
-
// Extension object.
chrome.Extension = function(id) {
this.id_ = id;
@@ -92,10 +85,4 @@ var chrome = chrome || {};
chrome.Extension.prototype.getURL = function(path) {
return "chrome-extension://" + this.id_ + "/" + path;
};
-
- chrome.onUnload_.addListener(function() {
- for (var i in chrome.Port.ports_) {
- chrome.Port.ports_[i].disconnect();
- }
- });
})();