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

Side by Side Diff: extensions/renderer/resources/messaging.js

Issue 327953002: Make MessagingBindings use ScriptContextSet::ForEach (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: ForEach shortcuts Created 6 years, 6 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 | Annotate | Revision Log
« no previous file with comments | « extensions/renderer/messaging_bindings.cc ('k') | extensions/renderer/script_context.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 // This contains unprivileged javascript APIs for extensions and apps. It 5 // This contains unprivileged javascript APIs for extensions and apps. It
6 // can be loaded by any extension-related context, such as content scripts or 6 // can be loaded by any extension-related context, such as content scripts or
7 // background pages. See user_script_slave.cc for script that is loaded by 7 // background pages. See user_script_slave.cc for script that is loaded by
8 // content scripts only. 8 // content scripts only.
9 9
10 // TODO(kalman): factor requiring chrome out of here. 10 // TODO(kalman): factor requiring chrome out of here.
11 var chrome = requireNative('chrome').GetChrome(); 11 var chrome = requireNative('chrome').GetChrome();
12 var Event = require('event_bindings').Event; 12 var Event = require('event_bindings').Event;
13 var lastError = require('lastError'); 13 var lastError = require('lastError');
14 var logActivity = requireNative('activityLogger'); 14 var logActivity = requireNative('activityLogger');
15 var logging = requireNative('logging');
15 var messagingNatives = requireNative('messaging_natives'); 16 var messagingNatives = requireNative('messaging_natives');
16 var processNatives = requireNative('process'); 17 var processNatives = requireNative('process');
17 var unloadEvent = require('unload_event'); 18 var unloadEvent = require('unload_event');
18 var utils = require('utils'); 19 var utils = require('utils');
19 var messagingUtils = require('messaging_utils'); 20 var messagingUtils = require('messaging_utils');
20 21
21 // The reserved channel name for the sendRequest/send(Native)Message APIs. 22 // The reserved channel name for the sendRequest/send(Native)Message APIs.
22 // Note: sendRequest is deprecated. 23 // Note: sendRequest is deprecated.
23 var kRequestChannel = "chrome.extension.sendRequest"; 24 var kRequestChannel = "chrome.extension.sendRequest";
24 var kMessageChannel = "chrome.runtime.sendMessage"; 25 var kMessageChannel = "chrome.runtime.sendMessage";
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
220 sourceTab, 221 sourceTab,
221 sourceExtensionId, 222 sourceExtensionId,
222 targetExtensionId, 223 targetExtensionId,
223 sourceUrl, 224 sourceUrl,
224 tlsChannelId) { 225 tlsChannelId) {
225 // Only create a new Port if someone is actually listening for a connection. 226 // Only create a new Port if someone is actually listening for a connection.
226 // In addition to being an optimization, this also fixes a bug where if 2 227 // In addition to being an optimization, this also fixes a bug where if 2
227 // channels were opened to and from the same process, closing one would 228 // channels were opened to and from the same process, closing one would
228 // close both. 229 // close both.
229 var extensionId = processNatives.GetExtensionId(); 230 var extensionId = processNatives.GetExtensionId();
230 if (targetExtensionId != extensionId) 231
231 return false; // not for us 232 // messaging_bindings.cc should ensure that this method only gets called for
233 // the right extension.
234 logging.CHECK(targetExtensionId == extensionId);
232 235
233 if (ports[getOppositePortId(portId)]) 236 if (ports[getOppositePortId(portId)])
234 return false; // this channel was opened by us, so ignore it 237 return false; // this channel was opened by us, so ignore it
235 238
236 // Determine whether this is coming from another extension, so we can use 239 // Determine whether this is coming from another extension, so we can use
237 // the right event. 240 // the right event.
238 var isExternal = sourceExtensionId != extensionId; 241 var isExternal = sourceExtensionId != extensionId;
239 242
240 var sender = {}; 243 var sender = {};
241 if (sourceExtensionId != '') 244 if (sourceExtensionId != '')
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
377 exports.Port = Port; 380 exports.Port = Port;
378 exports.createPort = createPort; 381 exports.createPort = createPort;
379 exports.sendMessageImpl = sendMessageImpl; 382 exports.sendMessageImpl = sendMessageImpl;
380 exports.sendMessageUpdateArguments = sendMessageUpdateArguments; 383 exports.sendMessageUpdateArguments = sendMessageUpdateArguments;
381 384
382 // For C++ code to call. 385 // For C++ code to call.
383 exports.hasPort = hasPort; 386 exports.hasPort = hasPort;
384 exports.dispatchOnConnect = dispatchOnConnect; 387 exports.dispatchOnConnect = dispatchOnConnect;
385 exports.dispatchOnDisconnect = dispatchOnDisconnect; 388 exports.dispatchOnDisconnect = dispatchOnDisconnect;
386 exports.dispatchOnMessage = dispatchOnMessage; 389 exports.dispatchOnMessage = dispatchOnMessage;
OLDNEW
« no previous file with comments | « extensions/renderer/messaging_bindings.cc ('k') | extensions/renderer/script_context.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698