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