Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(108)

Side by Side Diff: extensions/renderer/resources/guest_view/app_view.js

Issue 988853002: Moved the javascript files for each respective guest_view type into subdirectories of guest_view/ . (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
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.
4
5 var DocumentNatives = requireNative('document_natives');
6 var GuestView = require('guestView').GuestView;
7 var GuestViewContainer = require('guestViewContainer').GuestViewContainer;
8 var IdGenerator = requireNative('id_generator');
9
10 function AppViewImpl(appviewElement) {
11 GuestViewContainer.call(this, appviewElement, 'appview');
12
13 this.app = '';
14 this.data = '';
15 }
16
17 AppViewImpl.prototype.__proto__ = GuestViewContainer.prototype;
18
19 AppViewImpl.VIEW_TYPE = 'AppView';
20
21 // Add extra functionality to |this.element|.
22 AppViewImpl.setupElement = function(proto) {
23 var apiMethods = [
24 'connect'
25 ];
26
27 // Forward proto.foo* method calls to AppViewImpl.foo*.
28 GuestViewContainer.forwardApiMethods(proto, apiMethods);
29 }
30
31 AppViewImpl.prototype.getErrorNode = function() {
32 if (!this.errorNode) {
33 this.errorNode = document.createElement('div');
34 this.errorNode.innerText = 'Unable to connect to app.';
35 this.errorNode.style.position = 'absolute';
36 this.errorNode.style.left = '0px';
37 this.errorNode.style.top = '0px';
38 this.errorNode.style.width = '100%';
39 this.errorNode.style.height = '100%';
40 this.element.shadowRoot.appendChild(this.errorNode);
41 }
42 return this.errorNode;
43 };
44
45 AppViewImpl.prototype.buildContainerParams = function() {
46 return {
47 'appId': this.app,
48 'data': this.data || {}
49 };
50 };
51
52 AppViewImpl.prototype.connect = function(app, data, callback) {
53 if (!this.elementAttached) {
54 if (callback) {
55 callback(false);
56 }
57 return;
58 }
59
60 this.app = app;
61 this.data = data;
62
63 this.guest.destroy();
64 this.guest.create(this.buildParams(), function() {
65 if (!this.guest.getId()) {
66 var errorMsg = 'Unable to connect to app "' + app + '".';
67 window.console.warn(errorMsg);
68 this.getErrorNode().innerText = errorMsg;
69 if (callback) {
70 callback(false);
71 }
72 return;
73 }
74 this.attachWindow();
75 if (callback) {
76 callback(true);
77 }
78 }.bind(this));
79 };
80
81 GuestViewContainer.registerElement(AppViewImpl);
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698