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 a wrapper for a guestview that manages its | 5 // This module implements a wrapper for a guestview that manages its |
6 // creation, attaching, and destruction. | 6 // creation, attaching, and destruction. |
7 | 7 |
8 var EventBindings = require('event_bindings'); | 8 var EventBindings = require('event_bindings'); |
9 var GuestViewInternal = | 9 var GuestViewInternal = |
10 require('binding').Binding.create('guestViewInternal').generate(); | 10 require('binding').Binding.create('guestViewInternal').generate(); |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
106 } | 106 } |
107 | 107 |
108 // Map of possible errors for each action. For each action, the errors are | 108 // Map of possible errors for each action. For each action, the errors are |
109 // listed for states in the order: GUEST_STATE_START, GUEST_STATE_CREATED, | 109 // listed for states in the order: GUEST_STATE_START, GUEST_STATE_CREATED, |
110 // GUEST_STATE_ATTACHED. | 110 // GUEST_STATE_ATTACHED. |
111 var errors = { | 111 var errors = { |
112 'attach': [ERROR_MSG_NOT_CREATED, null, ERROR_MSG_ALREADY_ATTACHED], | 112 'attach': [ERROR_MSG_NOT_CREATED, null, ERROR_MSG_ALREADY_ATTACHED], |
113 'create': [null, ERROR_MSG_ALREADY_CREATED, ERROR_MSG_ALREADY_CREATED], | 113 'create': [null, ERROR_MSG_ALREADY_CREATED, ERROR_MSG_ALREADY_CREATED], |
114 'destroy': [null, null, null], | 114 'destroy': [null, null, null], |
115 'detach': [ERROR_MSG_NOT_ATTACHED, ERROR_MSG_NOT_ATTACHED, null], | 115 'detach': [ERROR_MSG_NOT_ATTACHED, ERROR_MSG_NOT_ATTACHED, null], |
116 'setAutoSize': [ERROR_MSG_NOT_CREATED, null, null] | 116 'setSize': [ERROR_MSG_NOT_CREATED, null, null] |
117 }; | 117 }; |
118 | 118 |
119 // Check that the proposed action is a real action. | 119 // Check that the proposed action is a real action. |
120 if (errors[action] == undefined) { | 120 if (errors[action] == undefined) { |
121 window.console.error(errorPrefix + ERROR_MSG_INVALID_ACTION); | 121 window.console.error(errorPrefix + ERROR_MSG_INVALID_ACTION); |
122 return false; | 122 return false; |
123 } | 123 } |
124 | 124 |
125 // Report the error if the proposed action is found to be invalid for the | 125 // Report the error if the proposed action is found to be invalid for the |
126 // current state. | 126 // current state. |
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
243 | 243 |
244 GuestViewInternalNatives.DetachGuest( | 244 GuestViewInternalNatives.DetachGuest( |
245 this.internalInstanceId, | 245 this.internalInstanceId, |
246 this.handleCallback.bind(this, callback)); | 246 this.handleCallback.bind(this, callback)); |
247 | 247 |
248 this.contentWindow = null; | 248 this.contentWindow = null; |
249 this.internalInstanceId = 0; | 249 this.internalInstanceId = 0; |
250 this.state = GUEST_STATE_CREATED; | 250 this.state = GUEST_STATE_CREATED; |
251 }; | 251 }; |
252 | 252 |
253 // Internal implementation of setAutoSize(). | 253 // Internal implementation of setSize(). |
254 GuestViewImpl.prototype.setAutoSizeImpl = function(autoSizeParams, callback) { | 254 GuestViewImpl.prototype.setSizeImpl = function(sizeParams, callback) { |
255 // Check the current state. | 255 // Check the current state. |
256 if (!this.checkState('setAutoSize')) { | 256 if (!this.checkState('setSize')) { |
257 this.handleCallback(callback); | 257 this.handleCallback(callback); |
258 return; | 258 return; |
259 } | 259 } |
260 | 260 |
261 GuestViewInternal.setAutoSize(this.id, autoSizeParams, | 261 GuestViewInternal.setSize(this.id, sizeParams, |
262 this.handleCallback.bind(this, callback)); | 262 this.handleCallback.bind(this, callback)); |
263 }; | 263 }; |
264 | 264 |
265 // The exposed interface to a guestview. Exposes in its API the functions | 265 // The exposed interface to a guestview. Exposes in its API the functions |
266 // attach(), create(), destroy(), and getId(). All other implementation details | 266 // attach(), create(), destroy(), and getId(). All other implementation details |
267 // are hidden. | 267 // are hidden. |
268 function GuestView(viewType, guestInstanceId) { | 268 function GuestView(viewType, guestInstanceId) { |
269 privates(this).internal = new GuestViewImpl(this, viewType, guestInstanceId); | 269 privates(this).internal = new GuestViewImpl(this, viewType, guestInstanceId); |
270 } | 270 } |
271 | 271 |
272 // Attaches the guestview to the container with ID |internalInstanceId|. | 272 // Attaches the guestview to the container with ID |internalInstanceId|. |
(...skipping 23 matching lines...) Expand all Loading... |
296 | 296 |
297 // Detaches the guestview from its container. | 297 // Detaches the guestview from its container. |
298 // Note: This is not currently used. | 298 // Note: This is not currently used. |
299 GuestView.prototype.detach = function(callback) { | 299 GuestView.prototype.detach = function(callback) { |
300 var internal = privates(this).internal; | 300 var internal = privates(this).internal; |
301 internal.actionQueue.push(internal.detachImpl.bind(internal, callback)); | 301 internal.actionQueue.push(internal.detachImpl.bind(internal, callback)); |
302 internal.performNextAction(); | 302 internal.performNextAction(); |
303 }; | 303 }; |
304 | 304 |
305 // Adjusts the guestview's sizing parameters. | 305 // Adjusts the guestview's sizing parameters. |
306 GuestView.prototype.setAutoSize = function(autoSizeParams, callback) { | 306 GuestView.prototype.setSize = function(sizeParams, callback) { |
307 var internal = privates(this).internal; | 307 var internal = privates(this).internal; |
308 internal.actionQueue.push(internal.setAutoSizeImpl.bind( | 308 internal.actionQueue.push(internal.setSizeImpl.bind( |
309 internal, autoSizeParams, callback)); | 309 internal, sizeParams, callback)); |
310 internal.performNextAction(); | 310 internal.performNextAction(); |
311 }; | 311 }; |
312 | 312 |
313 // Returns the contentWindow for this guestview. | 313 // Returns the contentWindow for this guestview. |
314 GuestView.prototype.getContentWindow = function() { | 314 GuestView.prototype.getContentWindow = function() { |
315 var internal = privates(this).internal; | 315 var internal = privates(this).internal; |
316 return internal.contentWindow; | 316 return internal.contentWindow; |
317 }; | 317 }; |
318 | 318 |
319 // Returns the ID for this guestview. | 319 // Returns the ID for this guestview. |
320 GuestView.prototype.getId = function() { | 320 GuestView.prototype.getId = function() { |
321 var internal = privates(this).internal; | 321 var internal = privates(this).internal; |
322 return internal.id; | 322 return internal.id; |
323 }; | 323 }; |
324 | 324 |
325 // Exports | 325 // Exports |
326 exports.GuestView = GuestView; | 326 exports.GuestView = GuestView; |
OLD | NEW |