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 10goog.provide('google.cf.installer.InlineDelegate'); 11 12goog.require('goog.style'); 13 14goog.require('google.cf.installer.InteractionDelegate'); 15goog.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 */ 23google.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 */ 34google.cf.installer.InlineDelegate.styleInjected_ = false; 35 36/** 37 * Generates the CSS for the overlay. 38 * @private 39 */ 40google.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 */ 59google.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 */ 69google.cf.installer.InlineDelegate.prototype.customizeIFrame = 70 function(iframe) { 71 google.cf.installer.frame.setProperties(iframe, this.args_); 72}; 73 74/** 75 * @inheritDoc 76 */ 77google.cf.installer.InlineDelegate.prototype.show = function() { 78 // TODO(user): Should start it out hidden and reveal/resize here. 79}; 80 81/** 82 * @inheritDoc 83 */ 84google.cf.installer.InlineDelegate.prototype.reset = 85 function() { 86 // TODO(user): Should hide it here. 87}; 88