Home | History | Annotate | Download | only in stub
      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 a compatibility layer for older versions of
      7  * CFInstall.js .
      8  **/
      9 
     10 goog.provide('google.cf.installer.InlineDelegate');
     11 
     12 goog.require('goog.style');
     13 
     14 goog.require('google.cf.installer.InteractionDelegate');
     15 goog.require('google.cf.installer.frame');
     16 
     17 /**
     18  * Adds an unadorned iframe into the page, taking arguments to customize it.
     19  * @param {Object} args A map of user-specified properties to set
     20  * @constructor
     21  * @implements {google.cf.installer.InteractionDelegate}
     22  */
     23 google.cf.installer.InlineDelegate = function(args) {
     24   this.args_ = args;
     25   this.args_.className = 'chromeFrameInstallDefaultStyle ' +
     26                          (this.args_.className || '');
     27 };
     28 
     29 /**
     30  * Indicates whether the overlay CSS has already been injected.
     31  * @type {boolean}
     32  * @private
     33  */
     34 google.cf.installer.InlineDelegate.styleInjected_ = false;
     35 
     36 /**
     37  * Generates the CSS for the overlay.
     38  * @private
     39  */
     40 google.cf.installer.InlineDelegate.injectCss_ = function() {
     41   if (google.cf.installer.InlineDelegate.styleInjected_)
     42     return;
     43 
     44   goog.style.installStyles('.chromeFrameInstallDefaultStyle {' +
     45                              'width: 800px;' +
     46                              'height: 600px;' +
     47                              'position: absolute;' +
     48                              'left: 50%;' +
     49                              'top: 50%;' +
     50                              'margin-left: -400px;' +
     51                              'margin-top: -300px;' +
     52                            '}');
     53   google.cf.installer.InlineDelegate.styleInjected_ = true;
     54 };
     55 
     56 /**
     57  * @inheritDoc
     58  */
     59 google.cf.installer.InlineDelegate.prototype.getIFrameContainer = function() {
     60   // TODO(user): This will append to the end of the container, whereas
     61   // prior behaviour was beginning...
     62   google.cf.installer.InlineDelegate.injectCss_();
     63   return google.cf.installer.frame.getParentNode(this.args_);
     64 };
     65 
     66 /**
     67  * @inheritDoc
     68  */
     69 google.cf.installer.InlineDelegate.prototype.customizeIFrame =
     70     function(iframe) {
     71   google.cf.installer.frame.setProperties(iframe, this.args_);
     72 };
     73 
     74 /**
     75  * @inheritDoc
     76  */
     77 google.cf.installer.InlineDelegate.prototype.show = function() {
     78   // TODO(user): Should start it out hidden and reveal/resize here.
     79 };
     80 
     81 /**
     82  * @inheritDoc
     83  */
     84 google.cf.installer.InlineDelegate.prototype.reset =
     85     function() {
     86   // TODO(user): Should hide it here.
     87 };
     88