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

Side by Side Diff: chrome_frame/cfinstall/src/stub/cfinstall.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 CFInstall.check and isAvailable in a way that is
7 * compatible with previous versions. Also supports a more streamlined
8 * method, 'require'.
9 *
10 **/
11
12 goog.provide('google.cf.installer.CFInstall');
13
14 goog.require('google.cf.ChromeFrame');
15 goog.require('google.cf.installer.InlineDelegate');
16 goog.require('google.cf.installer.Installer');
17 goog.require('google.cf.installer.OverlayDelegate');
18 goog.require('google.cf.installer.Prompt');
19
20 /**
21 * Instantiates the CFInstall object. Normally there will be only one, at
22 * Window.CFInstall .
23 * @constructor
24 */
25 google.cf.installer.CFInstall = function() {
26 this.prompt_ = new google.cf.installer.Prompt();
27 this.chromeFrame_ = new google.cf.ChromeFrame();
28 this.installer_ = new google.cf.installer.Installer(
29 this.prompt_, this.chromeFrame_);
30 this['setDownloadPageUrl'] =
31 goog.bind(this.prompt_.setDownloadPageUrl, this.prompt_);
32 this['setImplementationUrl'] =
33 goog.bind(this.prompt_.setImplementationUrl, this.prompt_);
34 this['setSameDomainResourceUri'] =
35 goog.bind(this.prompt_.setSameDomainResourceUri, this.prompt_);
36 this['setInteractionDelegate'] =
37 goog.bind(this.prompt_.setInteractionDelegate, this.prompt_);
38 this['require'] = goog.bind(this.installer_.require, this.installer_);
39 this['isAvailable'] =
40 goog.bind(this.chromeFrame_.activate, this.chromeFrame_);
41 };
42
43 /**
44 * TODO(user): This cookie is not currently set anywhere.
45 * @return {boolean} Whether the user has previously declined Chrome Frame.
46 * @private
47 */
48 google.cf.installer.CFInstall.isDeclined_ = function() {
49 return document.cookie.indexOf("disableGCFCheck=1") >=0;
50 };
51
52 /**
53 * Checks to see if Chrome Frame is available, if not, prompts the user to
54 * install. Once installation is begun, a background timer starts,
55 * checkinging for a successful install every 2 seconds. Upon detection of
56 * successful installation, the current page is reloaded, or if a
57 * 'destination' parameter is passed, the page navigates there instead.
58 * @param {Object} args A bag of configuration properties. Respected
59 * properties are: 'mode', 'url', 'destination', 'node', 'onmissing',
60 * 'preventPrompt', 'oninstall', 'preventInstallDetection', 'cssText', and
61 * 'className'.
62 */
63 google.cf.installer.CFInstall.prototype['check'] = function(args) {
64 args = args || {};
65
66 if (!this.chromeFrame_.isPlatformSupported())
67 return;
68
69 if (this.chromeFrame_.activate())
70 return;
71
72 if (args['onmissing'])
73 args['onmissing']();
74
75 if (google.cf.installer.CFInstall.isDeclined_() || args['preventPrompt'])
76 return;
77
78 // NOTE: @slightlyoff, I'm doing away with the window.open option here. Sites
79 // that were using it will now use the popup.
80
81 // In the case of legacy installation parameters, supply a compatible
82 // InteractionDelegate.
83 if (args['mode'] == 'inline' || args['node'] || args['id'] ||
84 args['cssText'] || args['className']) {
85 if (!args['mode'] || args['mode'] == 'inline') {
86 this.prompt_.setInteractionDelegate(
87 new google.cf.installer.InlineDelegate(args));
88 } else {
89 this.prompt_.setInteractionDelegate(
90 new google.cf.installer.OverlayDelegate(args));
91 }
92 }
93
94 if (args['src'])
95 this.prompt_.setDownloadPageUrl(args['src']);
96
97 var onSuccess = function() {
98 if (this.chromeFrame_.activate() && !args['preventInstallDetection']) {
99 if (args['oninstall'])
100 args['oninstall']();
101 window.location.assign(args['destination'] || window.location);
102 }
103 };
104
105 this.prompt_.open(onSuccess, undefined);
106 };
107
108 // In compiled mode, this binary is wrapped in an anonymous function which
109 // receives the outer scope as its only parameter. In non-compiled mode, the
110 // outer scope is window.
111
112 // Create a single instance of CFInstall and place it in the outer scope
113 // (presumably the global window object).
114 try {
115 arguments[0]['CFInstall'] = new google.cf.installer.CFInstall();
116 } catch (e) {
117 window['CFInstall'] = new google.cf.installer.CFInstall();
118 }
OLDNEW
« no previous file with comments | « chrome_frame/cfinstall/src/stub/cf-activex-externs.js ('k') | chrome_frame/cfinstall/src/stub/chromeframe.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698