Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(384)

Side by Side Diff: chrome/renderer/resources/event_bindings.js

Issue 152003: Fix some issues with extension messaging: (Closed)
Patch Set: Created 11 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // ----------------------------------------------------------------------------- 5 // -----------------------------------------------------------------------------
6 // NOTE: If you change this file you need to touch renderer_resources.grd to 6 // NOTE: If you change this file you need to touch renderer_resources.grd to
7 // have your change take effect. 7 // have your change take effect.
8 // ----------------------------------------------------------------------------- 8 // -----------------------------------------------------------------------------
9 9
10 var chrome = chrome || {}; 10 var chrome = chrome || {};
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 }; 52 };
53 53
54 // Dispatches a named event with the given arguments, supplied as an array. 54 // Dispatches a named event with the given arguments, supplied as an array.
55 chromeHidden.Event.dispatch = function(name, args) { 55 chromeHidden.Event.dispatch = function(name, args) {
56 if (attachedNamedEvents[name]) { 56 if (attachedNamedEvents[name]) {
57 attachedNamedEvents[name].dispatch.apply( 57 attachedNamedEvents[name].dispatch.apply(
58 attachedNamedEvents[name], args); 58 attachedNamedEvents[name], args);
59 } 59 }
60 }; 60 };
61 61
62 // Test if a named event has any listeners.
63 chromeHidden.Event.hasListener = function(name) {
64 return (attachedNamedEvents[name] &&
65 attachedNamedEvents[name].listeners_.length > 0);
66 }
67
62 // Registers a callback to be called when this event is dispatched. 68 // Registers a callback to be called when this event is dispatched.
63 chrome.Event.prototype.addListener = function(cb) { 69 chrome.Event.prototype.addListener = function(cb) {
64 this.listeners_.push(cb); 70 this.listeners_.push(cb);
65 if (this.listeners_.length == 1) { 71 if (this.listeners_.length == 1) {
66 this.attach_(); 72 this.attach_();
67 } 73 }
68 }; 74 };
69 75
70 // Unregisters a callback. 76 // Unregisters a callback.
71 chrome.Event.prototype.removeListener = function(cb) { 77 chrome.Event.prototype.removeListener = function(cb) {
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 var sargs = JSON.stringify(args); 181 var sargs = JSON.stringify(args);
176 var requestId = GetNextRequestId(); 182 var requestId = GetNextRequestId();
177 var hasCallback = false; 183 var hasCallback = false;
178 if (callback) { 184 if (callback) {
179 hasCallback = true; 185 hasCallback = true;
180 callbacks[requestId] = callback; 186 callbacks[requestId] = callback;
181 } 187 }
182 request(sargs, requestId, hasCallback); 188 request(sargs, requestId, hasCallback);
183 } 189 }
184 190
185 // Special unload event: we don't use the DOM unload because that slows 191 // Special load events: we don't use the DOM unload because that slows
186 // down tab shutdown. On the other hand, this might not always fire, since 192 // down tab shutdown. On the other hand, onUnload might not always fire,
187 // Chrome will terminate renderers on shutdown (SuddenTermination). 193 // since Chrome will terminate renderers on shutdown (SuddenTermination).
194 chromeHidden.onLoad = new chrome.Event();
188 chromeHidden.onUnload = new chrome.Event(); 195 chromeHidden.onUnload = new chrome.Event();
189 196
197 chromeHidden.dispatchOnLoad = function(extensionId) {
198 chromeHidden.onLoad.dispatch(extensionId);
199 }
200
190 chromeHidden.dispatchOnUnload = function() { 201 chromeHidden.dispatchOnUnload = function() {
191 chromeHidden.onUnload.dispatch(); 202 chromeHidden.onUnload.dispatch();
192 for (var i in allAttachedEvents) 203 for (var i in allAttachedEvents)
193 allAttachedEvents[i].detach_(); 204 allAttachedEvents[i].detach_();
194 } 205 }
195 })(); 206 })();
OLDNEW
« no previous file with comments | « chrome/renderer/renderer_resources.grd ('k') | chrome/renderer/resources/extension_process_bindings.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698