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

Side by Side Diff: chrome/renderer/resources/extensions/miscellaneous_bindings.js

Issue 13726026: Added ActivityLog tests and associated bugfixes/extra logging. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Reverted two changes Created 7 years, 8 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 require('json_schema'); 10 require('json_schema');
11 var json = require('json'); 11 var json = require('json');
12 var lastError = require('lastError'); 12 var lastError = require('lastError');
13 var miscNatives = requireNative('miscellaneous_bindings'); 13 var miscNatives = requireNative('miscellaneous_bindings');
14 var chrome = requireNative('chrome').GetChrome(); 14 var chrome = requireNative('chrome').GetChrome();
15 var CloseChannel = miscNatives.CloseChannel; 15 var CloseChannel = miscNatives.CloseChannel;
16 var PortAddRef = miscNatives.PortAddRef; 16 var PortAddRef = miscNatives.PortAddRef;
17 var PortRelease = miscNatives.PortRelease; 17 var PortRelease = miscNatives.PortRelease;
18 var PostMessage = miscNatives.PostMessage; 18 var PostMessage = miscNatives.PostMessage;
19 var BindToGC = miscNatives.BindToGC; 19 var BindToGC = miscNatives.BindToGC;
20 20
21 var chromeHidden = requireNative('chrome_hidden').GetChromeHidden(); 21 var chromeHidden = requireNative('chrome_hidden').GetChromeHidden();
22 22
23 var processNatives = requireNative('process'); 23 var processNatives = requireNative('process');
24 var manifestVersion = processNatives.GetManifestVersion(); 24 var manifestVersion = processNatives.GetManifestVersion();
25 var extensionId = processNatives.GetExtensionId(); 25 var extensionId = processNatives.GetExtensionId();
26 26
27 var logActivity = requireNative('activityLogger').LogActivity;
28
27 // The reserved channel name for the sendRequest/sendMessage APIs. 29 // The reserved channel name for the sendRequest/sendMessage APIs.
28 // Note: sendRequest is deprecated. 30 // Note: sendRequest is deprecated.
29 chromeHidden.kRequestChannel = "chrome.extension.sendRequest"; 31 chromeHidden.kRequestChannel = "chrome.extension.sendRequest";
30 chromeHidden.kMessageChannel = "chrome.runtime.sendMessage"; 32 chromeHidden.kMessageChannel = "chrome.runtime.sendMessage";
31 chromeHidden.kNativeMessageChannel = "chrome.runtime.sendNativeMessage"; 33 chromeHidden.kNativeMessageChannel = "chrome.runtime.sendNativeMessage";
32 34
33 // Map of port IDs to port object. 35 // Map of port IDs to port object.
34 var ports = {}; 36 var ports = {};
35 37
36 // Map of port IDs to chromeHidden.onUnload listeners. Keep track of these 38 // Map of port IDs to chromeHidden.onUnload listeners. Keep track of these
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 responseCallbackPreserved = 168 responseCallbackPreserved =
167 rv && rv.results && rv.results.indexOf(true) > -1; 169 rv && rv.results && rv.results.indexOf(true) > -1;
168 if (!responseCallbackPreserved && port) { 170 if (!responseCallbackPreserved && port) {
169 // If they didn't access the response callback, they're not 171 // If they didn't access the response callback, they're not
170 // going to send a response, so clean up the port immediately. 172 // going to send a response, so clean up the port immediately.
171 port.destroy_(); 173 port.destroy_();
172 port = null; 174 port = null;
173 } 175 }
174 } 176 }
175 }); 177 });
178 var eventName = (isSendMessage ?
179 (isExternal ?
180 "runtime.onMessageExternal" : "runtime.onMessage") :
181 (isExternal ?
182 "extension.onRequestExternal" : "extension.onRequest"));
183 logActivity("EVENT",
184 targetExtensionId,
185 eventName,
186 [sourceExtensionId]);
176 return true; 187 return true;
177 } 188 }
178 return false; 189 return false;
179 } 190 }
180 191
181 // Called by native code when a channel has been opened to this context. 192 // Called by native code when a channel has been opened to this context.
182 chromeHidden.Port.dispatchOnConnect = function(portId, channelName, tab, 193 chromeHidden.Port.dispatchOnConnect = function(portId, channelName, tab,
183 sourceExtensionId, 194 sourceExtensionId,
184 targetExtensionId) { 195 targetExtensionId) {
185 // Only create a new Port if someone is actually listening for a connection. 196 // Only create a new Port if someone is actually listening for a connection.
(...skipping 22 matching lines...) Expand all
208 } 219 }
209 220
210 var connectEvent = (isExternal ? 221 var connectEvent = (isExternal ?
211 chrome.runtime.onConnectExternal : chrome.runtime.onConnect); 222 chrome.runtime.onConnectExternal : chrome.runtime.onConnect);
212 if (connectEvent.hasListeners()) { 223 if (connectEvent.hasListeners()) {
213 var port = chromeHidden.Port.createPort(portId, channelName); 224 var port = chromeHidden.Port.createPort(portId, channelName);
214 port.sender = sender; 225 port.sender = sender;
215 if (manifestVersion < 2) 226 if (manifestVersion < 2)
216 port.tab = port.sender.tab; 227 port.tab = port.sender.tab;
217 228
229 var eventName = (isExternal ?
230 "runtime.onConnectExternal" : "runtime.onConnect");
218 connectEvent.dispatch(port); 231 connectEvent.dispatch(port);
232 logActivity("EVENT",
233 targetExtensionId,
234 eventName,
235 [sourceExtensionId]);
219 return true; 236 return true;
220 } 237 }
221 return false; 238 return false;
222 }; 239 };
223 240
224 // Called by native code when a channel has been closed. 241 // Called by native code when a channel has been closed.
225 chromeHidden.Port.dispatchOnDisconnect = function( 242 chromeHidden.Port.dispatchOnDisconnect = function(
226 portId, errorMessage) { 243 portId, errorMessage) {
227 var port = ports[portId]; 244 var port = ports[portId];
228 if (port) { 245 if (port) {
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
308 var targetId = null; 325 var targetId = null;
309 if (lastArg >= 0) 326 if (lastArg >= 0)
310 targetId = args[lastArg--]; 327 targetId = args[lastArg--];
311 328
312 if (lastArg != -1) 329 if (lastArg != -1)
313 throw new Error('Invalid arguments to ' + functionName + '.'); 330 throw new Error('Invalid arguments to ' + functionName + '.');
314 return [targetId, request, responseCallback]; 331 return [targetId, request, responseCallback];
315 } 332 }
316 333
317 exports.sendMessageUpdateArguments = sendMessageUpdateArguments; 334 exports.sendMessageUpdateArguments = sendMessageUpdateArguments;
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698