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

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

Issue 2768093002: [Reland][Extensions Bindings] Add support for filtered events (Closed)
Patch Set: Fix Created 3 years, 9 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 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 // chrome.runtime.messaging API implementation. 5 // chrome.runtime.messaging API implementation.
6 // TODO(robwu): Fix this indentation. 6 // TODO(robwu): Fix this indentation.
7 7
8 // TODO(kalman): factor requiring chrome out of here. 8 // TODO(kalman): factor requiring chrome out of here.
9 var chrome = requireNative('chrome').GetChrome(); 9 var chrome = requireNative('chrome').GetChrome();
10 var lastError = require('lastError'); 10 var lastError = require('lastError');
11 var logActivity = requireNative('activityLogger'); 11 var logActivity = requireNative('activityLogger');
12 var logging = requireNative('logging'); 12 var logging = requireNative('logging');
13 var messagingNatives = requireNative('messaging_natives'); 13 var messagingNatives = requireNative('messaging_natives');
14 var processNatives = requireNative('process'); 14 var processNatives = requireNative('process');
15 var utils = require('utils'); 15 var utils = require('utils');
16 var messagingUtils = require('messaging_utils'); 16 var messagingUtils = require('messaging_utils');
17 17
18 // The reserved channel name for the sendRequest/send(Native)Message APIs. 18 // The reserved channel name for the sendRequest/send(Native)Message APIs.
19 // Note: sendRequest is deprecated. 19 // Note: sendRequest is deprecated.
20 var kRequestChannel = "chrome.extension.sendRequest"; 20 var kRequestChannel = "chrome.extension.sendRequest";
21 var kMessageChannel = "chrome.runtime.sendMessage"; 21 var kMessageChannel = "chrome.runtime.sendMessage";
22 var kNativeMessageChannel = "chrome.runtime.sendNativeMessage"; 22 var kNativeMessageChannel = "chrome.runtime.sendNativeMessage";
23 var kPortClosedError = 'Attempting to use a disconnected port object'; 23 var kPortClosedError = 'Attempting to use a disconnected port object';
24 24
25 var jsEvent; 25 var jsEvent;
26 function createAnonymousEvent(schema, options) { 26 function createAnonymousEvent(schema) {
27 if (bindingUtil) { 27 if (bindingUtil) {
28 // Native custom events ignore schema. 28 // Native custom events ignore schema.
29 return bindingUtil.createCustomEvent(undefined, undefined, options); 29 var supportsFilters = false;
30 return bindingUtil.createCustomEvent(undefined, undefined,
31 supportsFilters);
30 } 32 }
33 var options = {
34 __proto__: null,
35 unmanaged: true,
36 };
31 if (!jsEvent) 37 if (!jsEvent)
32 jsEvent = require('event_bindings').Event; 38 jsEvent = require('event_bindings').Event;
33 return new jsEvent(undefined, schema, options); 39 return new jsEvent(undefined, schema, options);
34 } 40 }
35 41
36 function invalidateEvent(event) { 42 function invalidateEvent(event) {
37 if (bindingUtil) 43 if (bindingUtil)
38 bindingUtil.invalidateEvent(event); 44 bindingUtil.invalidateEvent(event);
39 else 45 else
40 privates(event).impl.destroy_(); 46 privates(event).impl.destroy_();
(...skipping 13 matching lines...) Expand all
54 __proto__: null, 60 __proto__: null,
55 name: 'port', 61 name: 'port',
56 $ref: 'runtime.Port', 62 $ref: 'runtime.Port',
57 }; 63 };
58 var messageSchema = { 64 var messageSchema = {
59 __proto__: null, 65 __proto__: null,
60 name: 'message', 66 name: 'message',
61 type: 'any', 67 type: 'any',
62 optional: true, 68 optional: true,
63 }; 69 };
64 var options = { 70 this.onDisconnect = createAnonymousEvent([portSchema]);
65 __proto__: null, 71 this.onMessage = createAnonymousEvent([messageSchema, portSchema]);
66 unmanaged: true,
67 };
68 this.onDisconnect = createAnonymousEvent([portSchema], options);
69 this.onMessage = createAnonymousEvent([messageSchema, portSchema], options);
70 } 72 }
71 $Object.setPrototypeOf(PortImpl.prototype, null); 73 $Object.setPrototypeOf(PortImpl.prototype, null);
72 74
73 // Sends a message asynchronously to the context on the other end of this 75 // Sends a message asynchronously to the context on the other end of this
74 // port. 76 // port.
75 PortImpl.prototype.postMessage = function(msg) { 77 PortImpl.prototype.postMessage = function(msg) {
76 if (!$Object.hasOwnProperty(ports, this.portId_)) 78 if (!$Object.hasOwnProperty(ports, this.portId_))
77 throw new Error(kPortClosedError); 79 throw new Error(kPortClosedError);
78 80
79 // JSON.stringify doesn't support a root object which is undefined. 81 // JSON.stringify doesn't support a root object which is undefined.
(...skipping 353 matching lines...) Expand 10 before | Expand all | Expand 10 after
433 exports.$set('kNativeMessageChannel', kNativeMessageChannel); 435 exports.$set('kNativeMessageChannel', kNativeMessageChannel);
434 exports.$set('Port', Port); 436 exports.$set('Port', Port);
435 exports.$set('createPort', createPort); 437 exports.$set('createPort', createPort);
436 exports.$set('sendMessageImpl', sendMessageImpl); 438 exports.$set('sendMessageImpl', sendMessageImpl);
437 exports.$set('sendMessageUpdateArguments', sendMessageUpdateArguments); 439 exports.$set('sendMessageUpdateArguments', sendMessageUpdateArguments);
438 440
439 // For C++ code to call. 441 // For C++ code to call.
440 exports.$set('dispatchOnConnect', dispatchOnConnect); 442 exports.$set('dispatchOnConnect', dispatchOnConnect);
441 exports.$set('dispatchOnDisconnect', dispatchOnDisconnect); 443 exports.$set('dispatchOnDisconnect', dispatchOnDisconnect);
442 exports.$set('dispatchOnMessage', dispatchOnMessage); 444 exports.$set('dispatchOnMessage', dispatchOnMessage);
OLDNEW
« no previous file with comments | « extensions/renderer/resources/guest_view/guest_view_events.js ('k') | extensions/renderer/worker_thread_dispatcher.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698