OLD | NEW |
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 // This module implements the attributes of the <webview> tag. | 5 // This module implements the attributes of the <webview> tag. |
6 | 6 |
7 var GuestViewInternal = | 7 var GuestViewInternal = |
8 require('binding').Binding.create('guestViewInternal').generate(); | 8 require('binding').Binding.create('guestViewInternal').generate(); |
9 var WebViewImpl = require('webView').WebViewImpl; | 9 var WebViewImpl = require('webView').WebViewImpl; |
10 var WebViewConstants = require('webViewConstants').WebViewConstants; | 10 var WebViewConstants = require('webViewConstants').WebViewConstants; |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
85 AllowTransparencyAttribute.prototype.handleMutation = function(oldValue, | 85 AllowTransparencyAttribute.prototype.handleMutation = function(oldValue, |
86 newValue) { | 86 newValue) { |
87 if (!this.webViewImpl.guest.getId()) { | 87 if (!this.webViewImpl.guest.getId()) { |
88 return; | 88 return; |
89 } | 89 } |
90 | 90 |
91 WebViewInternal.setAllowTransparency(this.webViewImpl.guest.getId(), | 91 WebViewInternal.setAllowTransparency(this.webViewImpl.guest.getId(), |
92 this.getValue()); | 92 this.getValue()); |
93 }; | 93 }; |
94 | 94 |
| 95 // Attribute that specifies whether transparency is allowed in the webview. |
| 96 function AllowScalingAttribute(webViewImpl) { |
| 97 BooleanAttribute.call( |
| 98 this, WebViewConstants.ATTRIBUTE_ALLOWSCALING, webViewImpl); |
| 99 } |
| 100 |
| 101 AllowScalingAttribute.prototype.__proto__ = BooleanAttribute.prototype; |
| 102 |
| 103 AllowScalingAttribute.prototype.handleMutation = function(oldValue, |
| 104 newValue) { |
| 105 if (!this.webViewImpl.guest.getId()) { |
| 106 return; |
| 107 } |
| 108 |
| 109 WebViewInternal.setAllowScaling(this.webViewImpl.guest.getId(), |
| 110 this.getValue()); |
| 111 }; |
| 112 |
95 // Attribute used to define the demension limits of autosizing. | 113 // Attribute used to define the demension limits of autosizing. |
96 function AutosizeDimensionAttribute(name, webViewImpl) { | 114 function AutosizeDimensionAttribute(name, webViewImpl) { |
97 WebViewAttribute.call(this, name, webViewImpl); | 115 WebViewAttribute.call(this, name, webViewImpl); |
98 } | 116 } |
99 | 117 |
100 AutosizeDimensionAttribute.prototype.__proto__ = WebViewAttribute.prototype; | 118 AutosizeDimensionAttribute.prototype.__proto__ = WebViewAttribute.prototype; |
101 | 119 |
102 AutosizeDimensionAttribute.prototype.getValue = function() { | 120 AutosizeDimensionAttribute.prototype.getValue = function() { |
103 return parseInt(this.webViewImpl.element.getAttribute(this.name)) || 0; | 121 return parseInt(this.webViewImpl.element.getAttribute(this.name)) || 0; |
104 }; | 122 }; |
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
257 }; | 275 }; |
258 | 276 |
259 // ----------------------------------------------------------------------------- | 277 // ----------------------------------------------------------------------------- |
260 | 278 |
261 // Sets up all of the webview attributes. | 279 // Sets up all of the webview attributes. |
262 WebViewImpl.prototype.setupWebViewAttributes = function() { | 280 WebViewImpl.prototype.setupWebViewAttributes = function() { |
263 this.attributes = {}; | 281 this.attributes = {}; |
264 | 282 |
265 this.attributes[WebViewConstants.ATTRIBUTE_ALLOWTRANSPARENCY] = | 283 this.attributes[WebViewConstants.ATTRIBUTE_ALLOWTRANSPARENCY] = |
266 new AllowTransparencyAttribute(this); | 284 new AllowTransparencyAttribute(this); |
| 285 this.attributes[WebViewConstants.ATTRIBUTE_ALLOWSCALING] = |
| 286 new AllowScalingAttribute(this); |
267 this.attributes[WebViewConstants.ATTRIBUTE_AUTOSIZE] = | 287 this.attributes[WebViewConstants.ATTRIBUTE_AUTOSIZE] = |
268 new AutosizeAttribute(this); | 288 new AutosizeAttribute(this); |
269 this.attributes[WebViewConstants.ATTRIBUTE_NAME] = | 289 this.attributes[WebViewConstants.ATTRIBUTE_NAME] = |
270 new NameAttribute(this); | 290 new NameAttribute(this); |
271 this.attributes[WebViewConstants.ATTRIBUTE_PARTITION] = | 291 this.attributes[WebViewConstants.ATTRIBUTE_PARTITION] = |
272 new PartitionAttribute(this); | 292 new PartitionAttribute(this); |
273 this.attributes[WebViewConstants.ATTRIBUTE_SRC] = | 293 this.attributes[WebViewConstants.ATTRIBUTE_SRC] = |
274 new SrcAttribute(this); | 294 new SrcAttribute(this); |
275 | 295 |
276 var autosizeAttributes = [WebViewConstants.ATTRIBUTE_MAXHEIGHT, | 296 var autosizeAttributes = [WebViewConstants.ATTRIBUTE_MAXHEIGHT, |
277 WebViewConstants.ATTRIBUTE_MAXWIDTH, | 297 WebViewConstants.ATTRIBUTE_MAXWIDTH, |
278 WebViewConstants.ATTRIBUTE_MINHEIGHT, | 298 WebViewConstants.ATTRIBUTE_MINHEIGHT, |
279 WebViewConstants.ATTRIBUTE_MINWIDTH]; | 299 WebViewConstants.ATTRIBUTE_MINWIDTH]; |
280 for (var i = 0; autosizeAttributes[i]; ++i) { | 300 for (var i = 0; autosizeAttributes[i]; ++i) { |
281 this.attributes[autosizeAttributes[i]] = | 301 this.attributes[autosizeAttributes[i]] = |
282 new AutosizeDimensionAttribute(autosizeAttributes[i], this); | 302 new AutosizeDimensionAttribute(autosizeAttributes[i], this); |
283 } | 303 } |
284 }; | 304 }; |
OLD | NEW |