Chromium Code Reviews| Index: chrome/renderer/resources/extensions/web_view.js |
| diff --git a/chrome/renderer/resources/extensions/web_view.js b/chrome/renderer/resources/extensions/web_view.js |
| index 13331c49bc21b843e98bdd4699766c430f39df3c..335a2887bdee048b3282fa1839ebd86ee4aee923 100644 |
| --- a/chrome/renderer/resources/extensions/web_view.js |
| +++ b/chrome/renderer/resources/extensions/web_view.js |
| @@ -123,6 +123,34 @@ function WebView(node) { |
| for (var eventName in WEB_VIEW_EVENTS) { |
| this.setupEvent_(eventName, WEB_VIEW_EVENTS[eventName]); |
| } |
| + this.setupPermissionRequestEvent_(); |
| +} |
| + |
| +/** |
| + * @private |
| + */ |
| +WebView.prototype.setupPermissionRequestEvent_ = function(mutation) { |
|
sadrul
2012/11/16 03:59:53
Can setupEvent_ be reused for this? setupEvent_ ca
lazyboy
2012/11/16 06:27:09
Yes that makes sense.
Done.
|
| + var node = this.node_; |
| + var objectNode = this.objectNode_; |
| + this.objectNode_.addEventListener('-internal-permissionrequest', function(e) { |
| + var detail = e.detail ? JSON.parse(e.detail) : {}; |
| + if (detail.reason == 'media') { |
| + var request_id = detail.request_id; |
| + if (request_id !== undefined) { |
| + var evt = new Event('permissionrequest'); |
| + // TODO(lazyboy): Also fill in evt.url and evt.details (see webview |
| + // specs). |
| + evt.reason = detail.reason; |
| + evt.allow = function() { |
| + objectNode.setMediaPermission(request_id, true /* allow */); |
| + }; |
| + evt.deny = function() { |
| + objectNode.setMediaPermission(request_id, false /* allow */); |
|
Fady Samuel
2012/11/16 03:42:59
This looks good. Looks like what we discussed.
|
| + } |
| + node.dispatchEvent(evt); |
| + } |
| + } |
| + }); |
| }; |
| /** |