OLD | NEW |
---|---|
(Empty) | |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 // Event management for ExtensionView. | |
6 | |
7 var EventBindings = require('event_bindings'); | |
8 | |
9 var CreateEvent = function(name) { | |
10 var eventOpts = {supportsListeners: true, supportsFilters: true}; | |
11 return new EventBindings.Event(name, undefined, eventOpts); | |
12 }; | |
13 | |
14 var EXTENSION_VIEW_EVENTS = { | |
15 'loadcommit': { | |
16 customHandler: function(handler, event, extensionViewEvent) { | |
Fady Samuel
2015/02/17 23:20:36
just call this handler instead of customHandler.
apacible
2015/02/18 00:04:12
Done.
| |
17 handler.handleLoadCommitEvent(event, extensionViewEvent); | |
18 }, | |
19 evt: CreateEvent('extensionViewInternal.onLoadCommit'), | |
20 fields: ['url', 'isTopLevel'] | |
Fady Samuel
2015/02/17 23:20:36
These fields don't do anything here. Please remove
apacible
2015/02/18 00:04:12
Done.
| |
21 } | |
22 }; | |
23 | |
24 // Constructor. | |
25 function ExtensionViewEvents(extensionViewImpl, viewInstanceId) { | |
26 this.extensionViewImpl = extensionViewImpl; | |
27 this.viewInstanceId = viewInstanceId; | |
28 | |
29 // Set up the events. | |
30 var events = this.getEvents(); | |
31 for (var eventName in events) { | |
32 this.setupEvent(eventName, events[eventName]); | |
33 } | |
34 } | |
35 | |
36 ExtensionViewEvents.prototype.getEvents = function() { | |
37 return EXTENSION_VIEW_EVENTS; | |
38 }; | |
39 | |
40 ExtensionViewEvents.prototype.setupEvent = function(name, info) { | |
41 info.evt.addListener(function(e) { | |
42 var details = {}; | |
43 var extensionViewEvent = new Event(name, details); | |
Fady Samuel
2015/02/17 23:20:36
Delete the two lines above?
apacible
2015/02/18 00:04:12
Done.
| |
44 if (info.customHandler) { | |
Fady Samuel
2015/02/17 23:20:36
if (info.handler)
info.handler.call(this, e);
apacible
2015/02/18 00:04:12
Done.
| |
45 info.customHandler(this, e, extensionViewEvent); | |
46 return; | |
47 } | |
48 }.bind(this), {instanceId: this.viewInstanceId}); | |
49 }; | |
50 | |
51 ExtensionViewEvents.prototype.handleLoadCommitEvent = | |
52 function(event, webViewEvent) { | |
53 this.extensionViewImpl.onLoadCommit(event.url); | |
54 }; | |
55 | |
56 exports.ExtensionViewEvents = ExtensionViewEvents; | |
OLD | NEW |