15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2011 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @fileoverview 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) **/ 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)goog.provide('google.cf.installer.Installer'); 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)goog.require('google.cf.ChromeFrame'); 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)goog.require('google.cf.installer.Prompt'); 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @constructor 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)google.cf.installer.Installer = function(prompt, chromeFrame) { 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) this.prompt_ = prompt; 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) this.chromeFrame_ = chromeFrame; 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)google.cf.installer.Installer.prototype.require = 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) function(opt_onInstall, opt_onFailure) { 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (this.chromeFrame_.isActiveRenderer()) 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return; 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (!this.chromeFrame_.isPlatformSupported()) { 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (opt_onFailure) 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) opt_onFailure(); 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return; 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) var successHandler = opt_onInstall || function() { 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) window.location.assign(window.location.href); 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }; 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (this.chromeFrame_.activate()) { 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) successHandler(); 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return; 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) this.prompt_.open(successHandler, opt_onFailure); 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 44