- add sources.
[platform/framework/web/crosswalk.git] / src / chrome_frame / cfinstall / src / stub / inlinedelegate.js
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 };