Add the ability to code generated prepopulated static nested structs
[chromium-blink-merge.git] / extensions / renderer / resources / guest_view / surface_view / surface_view.js
blobbe78be128d1af9aad15c3e52fcc57374d2a812bd
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
3 // found in the LICENSE file.
5 // This module implements the SurfaceView prototype.
7 var GuestView = require('guestView').GuestView;
8 var GuestViewContainer = require('guestViewContainer').GuestViewContainer;
10 function SurfaceViewImpl(surfaceviewElement) {
11   GuestViewContainer.call(this, surfaceviewElement, 'surfaceview');
14 SurfaceViewImpl.prototype.__proto__ = GuestViewContainer.prototype;
16 SurfaceViewImpl.VIEW_TYPE = 'SurfaceView';
18 // Add extra functionality to |this.element|.
19 SurfaceViewImpl.setupElement = function(proto) {
20   var apiMethods = [
21     'connect'
22   ];
24   // Forward proto.foo* method calls to SurfaceViewImpl.foo*.
25   GuestViewContainer.forwardApiMethods(proto, apiMethods);
28 SurfaceViewImpl.prototype.buildContainerParams = function() {
29   return { 'url': this.url };
32 SurfaceViewImpl.prototype.connect = function(url, callback) {
33   if (!this.elementAttached) {
34     if (callback) {
35       callback(false);
36     }
37     return;
38   }
40   this.url = url;
42   this.guest.destroy();
44   this.guest.create(this.buildParams(), function() {
45     this.attachWindow$();
46     if (callback) {
47       callback(true);
48     }
49   }.bind(this));
52 GuestViewContainer.registerElement(SurfaceViewImpl);