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

Side by Side Diff: chrome_frame/cfinstall/src/implementation/crossdomaininstall.js

Issue 126143005: Remove Chrome Frame code and resources. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: sync to r244038 Created 6 years, 11 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 | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2011 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 /**
6 * @fileoverview Implements the in-line Google Chrome Frame installation flow.
7 * Displays a dialog containing the download page. Upon completion, registers
8 * the Google Chrome Frame components in the current browser process.
9 *
10 **/
11 goog.provide('google.cf.installer.CrossDomainInstall');
12
13 goog.require('goog.net.xpc.CrossPageChannel');
14 goog.require('goog.style');
15 goog.require('goog.Uri');
16
17 goog.require('google.cf.installer.InteractionDelegate');
18 goog.require('google.cf.installer.DialogInteractionDelegate');
19
20 /**
21 * @type {Object}
22 **/
23 google.cf.installer.CrossDomainInstall = {};
24
25 /**
26 * @define {string} Defines the default download page URL.
27 **/
28 google.cf.installer.CrossDomainInstall.DEFAULT_DOWNLOAD_PAGE_URL =
29 '//www.google.com/chromeframe/eula.html';
30
31 /**
32 * Executes the in-line installation flow.
33 * @param {function()} successHandler Invoked upon installation success. When
34 * invoked, Google Chrome Frame will be active in the current and all
35 * future-launched browser processes.
36 * @param {function()=} opt_failureHandler Invoked upon installation failure or
37 * cancellation.
38 * @param {string=} opt_url An alternative URL for the download page.
39 * @param {google.cf.installer.InteractionDelegate=} opt_interactionDelegate An
40 * alternative UI implementation for the modal dialog.
41 * @param {string=} opt_dummyResourceUri A manually-specified dummy resource URI
42 * that will be used to carry cross-domain responses.
43 */
44 google.cf.installer.CrossDomainInstall.execute = function(
45 successHandler, opt_failureHandler, opt_url, opt_interactionDelegate,
46 opt_dummyResourceUri) {
47 var url = new goog.Uri(
48 opt_url ||
49 google.cf.installer.CrossDomainInstall.DEFAULT_DOWNLOAD_PAGE_URL);
50
51 if (!url.hasScheme())
52 url = new goog.Uri(window.location.href).resolve(url);
53
54 var interactionDelegate = opt_interactionDelegate ||
55 new google.cf.installer.DialogInteractionDelegate();
56
57 var cfg = {};
58
59 // TODO(user): Probably need to import some of the link/image url
60 // detection stuff from XDRPC.
61 if (opt_dummyResourceUri) {
62 var dummyUrl = new goog.Uri(opt_dummyResourceUri);
63 if (!dummyUrl.hasScheme())
64 dummyUrl = new goog.Uri(window.location.href).resolve(dummyUrl);
65
66 cfg[goog.net.xpc.CfgFields.LOCAL_POLL_URI] = dummyUrl.toString();
67 }
68
69 cfg[goog.net.xpc.CfgFields.PEER_URI] = url.toString();
70
71 var channel = new goog.net.xpc.CrossPageChannel(cfg);
72 var iframe = channel.createPeerIframe(
73 interactionDelegate.getIFrameContainer(),
74 function(newIFrame) {
75 newIFrame.setAttribute('frameBorder', '0');
76 newIFrame.setAttribute('border', '0');
77 interactionDelegate.customizeIFrame(newIFrame);
78 });
79 channel.registerService('dimensions', function(size) {
80 goog.style.setContentBoxSize(iframe, new goog.math.Size(size['width'],
81 size['height']));
82 interactionDelegate.show();
83 }, true); // true => deserialize messages into objects
84 channel.registerService('result', function(obj) {
85 channel.close();
86 interactionDelegate.reset();
87 var result = obj['result'];
88 if (result)
89 successHandler();
90 else if (opt_failureHandler)
91 opt_failureHandler();
92 }, true); // true => deserialize messages into objects
93 // TODO(user): Perhaps listen to onload and set a timeout for connect.
94 channel.connect();
95 };
96
97 // In compiled mode, this binary is wrapped in an anonymous function which
98 // receives the outer scope as its only parameter. In non-compiled mode, the
99 // outer scope is window.
100 // Look in the outer scope for the stub, and pass it the implementation.
101 try {
102 if (arguments[0]['CF_google_cf_xd_install_stub']) {
103 arguments[0]['CF_google_cf_xd_install_stub'](
104 google.cf.installer.CrossDomainInstall.execute);
105 }
106 } catch (e) {
107 if (window['CF_google_cf_xd_install_stub']) {
108 window['CF_google_cf_xd_install_stub'](
109 google.cf.installer.CrossDomainInstall.execute);
110 }
111 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698