| Index: extensions/renderer/resources/guest_view/guest_view.js
|
| diff --git a/extensions/renderer/resources/guest_view/guest_view.js b/extensions/renderer/resources/guest_view/guest_view.js
|
| index a09f7c6026a9d79bfb6a92be8ab82662ef703881..66d48a2d3ba2c1219cd7af8fa35ef12e8d3faddc 100644
|
| --- a/extensions/renderer/resources/guest_view/guest_view.js
|
| +++ b/extensions/renderer/resources/guest_view/guest_view.js
|
| @@ -14,11 +14,6 @@ var GuestViewInternalNatives = requireNative('guest_view_internal');
|
| // Events.
|
| var ResizeEvent = CreateEvent('guestViewInternal.onResize');
|
|
|
| -// Possible states.
|
| -var GUEST_STATE_ATTACHED = 2;
|
| -var GUEST_STATE_CREATED = 1;
|
| -var GUEST_STATE_START = 0;
|
| -
|
| // Error messages.
|
| var ERROR_MSG_ALREADY_ATTACHED = 'The guest has already been attached.';
|
| var ERROR_MSG_ALREADY_CREATED = 'The guest has already been created.';
|
| @@ -35,10 +30,10 @@ var PROPERTY_ON_RESIZE = 'onresize';
|
| function GuestViewImpl(guestView, viewType, guestInstanceId) {
|
| if (guestInstanceId) {
|
| this.id = guestInstanceId;
|
| - this.state = GUEST_STATE_CREATED;
|
| + this.state = GuestViewImpl.GuestState.GUEST_STATE_CREATED;
|
| } else {
|
| this.id = 0;
|
| - this.state = GUEST_STATE_START;
|
| + this.state = GuestViewImpl.GuestState.GUEST_STATE_START;
|
| }
|
| this.actionQueue = [];
|
| this.contentWindow = null;
|
| @@ -50,6 +45,13 @@ function GuestViewImpl(guestView, viewType, guestInstanceId) {
|
| this.setupOnResize();
|
| }
|
|
|
| +// Possible states.
|
| +GuestViewImpl.GuestState = {
|
| + GUEST_STATE_START: 0,
|
| + GUEST_STATE_CREATED: 1,
|
| + GUEST_STATE_ATTACHED: 2
|
| +};
|
| +
|
| // Sets up the onResize property on the GuestView.
|
| GuestViewImpl.prototype.setupOnResize = function() {
|
| $Object.defineProperty(this.guestView, PROPERTY_ON_RESIZE, {
|
| @@ -145,7 +147,7 @@ GuestViewImpl.prototype.weakWrapper = function(func, viewInstanceId) {
|
| };
|
|
|
| // Internal implementation of attach().
|
| -GuestViewImpl.prototype.attachImpl = function(
|
| +GuestViewImpl.prototype.attachImpl$ = function(
|
| internalInstanceId, viewInstanceId, attachParams, callback) {
|
| // Check the current state.
|
| if (!this.checkState('attach')) {
|
| @@ -159,7 +161,7 @@ GuestViewImpl.prototype.attachImpl = function(
|
| var callbackWrapper = function(callback, contentWindow) {
|
| // Check if attaching failed.
|
| if (!contentWindow) {
|
| - this.state = GUEST_STATE_CREATED;
|
| + this.state = GuestViewImpl.GuestState.GUEST_STATE_CREATED;
|
| this.internalInstanceId = 0;
|
| } else {
|
| // Only update the contentWindow if attaching is successful.
|
| @@ -176,23 +178,23 @@ GuestViewImpl.prototype.attachImpl = function(
|
| callbackWrapper.bind(this, callback));
|
|
|
| this.internalInstanceId = internalInstanceId;
|
| - this.state = GUEST_STATE_ATTACHED;
|
| + this.state = GuestViewImpl.GuestState.GUEST_STATE_ATTACHED;
|
|
|
| // Detach automatically when the container is destroyed.
|
| GuestViewInternalNatives.RegisterDestructionCallback(
|
| internalInstanceId, this.weakWrapper(function() {
|
| - if (this.state != GUEST_STATE_ATTACHED ||
|
| + if (this.state != GuestViewImpl.GuestState.GUEST_STATE_ATTACHED ||
|
| this.internalInstanceId != internalInstanceId) {
|
| return;
|
| }
|
|
|
| this.internalInstanceId = 0;
|
| - this.state = GUEST_STATE_CREATED;
|
| + this.state = GuestViewImpl.GuestState.GUEST_STATE_CREATED;
|
| }, viewInstanceId));
|
| };
|
|
|
| // Internal implementation of create().
|
| -GuestViewImpl.prototype.createImpl = function(createParams, callback) {
|
| +GuestViewImpl.prototype.createImpl$ = function(createParams, callback) {
|
| // Check the current state.
|
| if (!this.checkState('create')) {
|
| this.handleCallback(callback);
|
| @@ -209,7 +211,7 @@ GuestViewImpl.prototype.createImpl = function(createParams, callback) {
|
|
|
| // Check if creation failed.
|
| if (this.id === 0) {
|
| - this.state = GUEST_STATE_START;
|
| + this.state = GuestViewImpl.GuestState.GUEST_STATE_START;
|
| this.contentWindow = null;
|
| }
|
|
|
| @@ -217,11 +219,14 @@ GuestViewImpl.prototype.createImpl = function(createParams, callback) {
|
| this.handleCallback(callback);
|
| };
|
|
|
| - GuestViewInternal.createGuest(this.viewType,
|
| - createParams,
|
| - callbackWrapper.bind(this, callback));
|
| + this.sendCreateRequest(createParams, callbackWrapper.bind(this, callback));
|
| +
|
| + this.state = GuestViewImpl.GuestState.GUEST_STATE_CREATED;
|
| +};
|
|
|
| - this.state = GUEST_STATE_CREATED;
|
| +GuestViewImpl.prototype.sendCreateRequest = function(
|
| + createParams, boundCallback) {
|
| + GuestViewInternal.createGuest(this.viewType, createParams, boundCallback);
|
| };
|
|
|
| // Internal implementation of destroy().
|
| @@ -232,7 +237,7 @@ GuestViewImpl.prototype.destroyImpl = function(callback) {
|
| return;
|
| }
|
|
|
| - if (this.state == GUEST_STATE_START) {
|
| + if (this.state == GuestViewImpl.GuestState.GUEST_STATE_START) {
|
| // destroy() does nothing in this case.
|
| this.handleCallback(callback);
|
| return;
|
| @@ -250,7 +255,7 @@ GuestViewImpl.prototype.destroyImpl = function(callback) {
|
| this.contentWindow = null;
|
| this.id = 0;
|
| this.internalInstanceId = 0;
|
| - this.state = GUEST_STATE_START;
|
| + this.state = GuestViewImpl.GuestState.GUEST_STATE_START;
|
| if (ResizeEvent.hasListener(this.callOnResize)) {
|
| ResizeEvent.removeListener(this.callOnResize);
|
| }
|
| @@ -269,7 +274,7 @@ GuestViewImpl.prototype.detachImpl = function(callback) {
|
| this.handleCallback.bind(this, callback));
|
|
|
| this.internalInstanceId = 0;
|
| - this.state = GUEST_STATE_CREATED;
|
| + this.state = GuestViewImpl.GuestState.GUEST_STATE_CREATED;
|
| };
|
|
|
| // Internal implementation of setSize().
|
| @@ -295,7 +300,7 @@ function GuestView(viewType, guestInstanceId) {
|
| GuestView.prototype.attach = function(
|
| internalInstanceId, viewInstanceId, attachParams, callback) {
|
| var internal = privates(this).internal;
|
| - internal.actionQueue.push(internal.attachImpl.bind(
|
| + internal.actionQueue.push(internal.attachImpl$.bind(
|
| internal, internalInstanceId, viewInstanceId, attachParams, callback));
|
| internal.performNextAction();
|
| };
|
| @@ -303,7 +308,7 @@ GuestView.prototype.attach = function(
|
| // Creates the guestview.
|
| GuestView.prototype.create = function(createParams, callback) {
|
| var internal = privates(this).internal;
|
| - internal.actionQueue.push(internal.createImpl.bind(
|
| + internal.actionQueue.push(internal.createImpl$.bind(
|
| internal, createParams, callback));
|
| internal.performNextAction();
|
| };
|
| @@ -346,3 +351,5 @@ GuestView.prototype.getId = function() {
|
|
|
| // Exports
|
| exports.GuestView = GuestView;
|
| +exports.GuestViewImpl = GuestViewImpl;
|
| +exports.ResizeEvent = ResizeEvent;
|
|
|