OLD | NEW |
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 // Shim that simulates a <webview> tag via Mutation Observers. | 5 // Shim that simulates a <webview> tag via Mutation Observers. |
6 // | 6 // |
7 // The actual tag is implemented via the browser plugin. The internals of this | 7 // The actual tag is implemented via the browser plugin. The internals of this |
8 // are hidden via Shadow DOM. | 8 // are hidden via Shadow DOM. |
9 | 9 |
10 var addTagWatcher = require('tagWatcher').addTagWatcher; | 10 var addTagWatcher = require('tagWatcher').addTagWatcher; |
(...skipping 521 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
532 } | 532 } |
533 this.webviewNode_['insertCSS'] = function(var_args) { | 533 this.webviewNode_['insertCSS'] = function(var_args) { |
534 validateCall(); | 534 validateCall(); |
535 var args = $Array.concat([self.browserPluginNode_.getGuestInstanceId()], | 535 var args = $Array.concat([self.browserPluginNode_.getGuestInstanceId()], |
536 $Array.slice(arguments)); | 536 $Array.slice(arguments)); |
537 $Function.apply(chrome.webview.insertCSS, null, args); | 537 $Function.apply(chrome.webview.insertCSS, null, args); |
538 } | 538 } |
539 }; | 539 }; |
540 | 540 |
541 /** | 541 /** |
542 * @private | |
543 */ | |
544 WebView.prototype.getPermissionTypes_ = function() { | |
545 var PERMISSION_TYPES = ['media', 'geolocation', 'pointerLock']; | |
546 return PERMISSION_TYPES.concat(this.maybeGetExperimentalPermissionTypes_()); | |
547 }; | |
548 | |
549 /** | |
550 * @param {!Object} detail The event details, originated from <object>. | 542 * @param {!Object} detail The event details, originated from <object>. |
551 * @private | 543 * @private |
552 */ | 544 */ |
553 WebView.prototype.setupPermissionEvent_ = function() { | 545 WebView.prototype.setupPermissionEvent_ = function() { |
554 var ERROR_MSG_PERMISSION_ALREADY_DECIDED = '<webview>: ' + | 546 var ERROR_MSG_PERMISSION_ALREADY_DECIDED = '<webview>: ' + |
555 'Permission has already been decided for this "permissionrequest" event.'; | 547 'Permission has already been decided for this "permissionrequest" event.'; |
556 | 548 |
557 var showWarningMessage = function(permission) { | 549 var showWarningMessage = function(permission) { |
558 var WARNING_MSG_PERMISSION_DENIED = '<webview>: ' + | 550 var WARNING_MSG_PERMISSION_DENIED = '<webview>: ' + |
559 'The permission request for "%1" has been denied.'; | 551 'The permission request for "%1" has been denied.'; |
560 console.warn(WARNING_MSG_PERMISSION_DENIED.replace('%1', permission)); | 552 console.warn(WARNING_MSG_PERMISSION_DENIED.replace('%1', permission)); |
561 }; | 553 }; |
562 | 554 |
563 var PERMISSION_TYPES = this.getPermissionTypes_(); | 555 var PERMISSION_TYPES = ['media', 'geolocation', 'pointerLock', 'download']; |
564 | 556 |
565 var EXPOSED_PERMISSION_EVENT_ATTRIBS = [ | 557 var EXPOSED_PERMISSION_EVENT_ATTRIBS = [ |
566 'lastUnlockedBySelf', | 558 'lastUnlockedBySelf', |
567 'permission', | 559 'permission', |
568 'requestMethod', | 560 'requestMethod', |
569 'url', | 561 'url', |
570 'userGesture' | 562 'userGesture' |
571 ]; | 563 ]; |
572 | 564 |
573 var self = this; | 565 var self = this; |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
642 browserPluginNode['-internal-setPermission'](requestId, false, ''); | 634 browserPluginNode['-internal-setPermission'](requestId, false, ''); |
643 showWarningMessage(detail.permission); | 635 showWarningMessage(detail.permission); |
644 } | 636 } |
645 }); | 637 }); |
646 }; | 638 }; |
647 | 639 |
648 /** | 640 /** |
649 * Implemented when the experimental API is available. | 641 * Implemented when the experimental API is available. |
650 * @private | 642 * @private |
651 */ | 643 */ |
652 WebView.prototype.maybeGetExperimentalPermissionTypes_ = function() { | |
653 return []; | |
654 }; | |
655 | |
656 /** | |
657 * Implemented when the experimental API is available. | |
658 * @private | |
659 */ | |
660 WebView.prototype.maybeSetupExperimentalAPI_ = function() {}; | 644 WebView.prototype.maybeSetupExperimentalAPI_ = function() {}; |
661 | 645 |
662 exports.WebView = WebView; | 646 exports.WebView = WebView; |
OLD | NEW |