• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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