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 Describes an interface clients may implement to customize the 7 * look and feel of the Chrome Frame installation flow on their site. 8 * 9 */ 10 11 goog.provide('google.cf.installer.InteractionDelegate'); 12 13 /** 14 * Allows clients to customize the display of the IFrame holding the Chrome 15 * Frame installation flow. 16 * @interface 17 */ 18 google.cf.installer.InteractionDelegate = function() {}; 19 20 /** 21 * Returns the element under which the IFrame should be located. Note that the 22 * IFrame must remain in the DOM for the duration of the connection. 23 * Re-parenting the IFrame or any ancestor will cause undefined behaviour. 24 * @return {!HTMLElement} The element that should be the parent of the IFrame. 25 */ 26 google.cf.installer.InteractionDelegate.prototype.getIFrameContainer = 27 function() {}; 28 29 /** 30 * Receives a reference to the newly created IFrame. May optionally modify the 31 * element's attributes, style, etc. The InteractionDelegate is not responsible 32 * for inserting the IFrame in the DOM (this will occur later). 33 * @param {!HTMLIFrameElement} iframe The newly created IFrame element. 34 */ 35 google.cf.installer.InteractionDelegate.prototype.customizeIFrame = 36 function(iframe) {}; 37 38 /** 39 * Make the IFrame and its decoration (if any) visible. Its dimensions will 40 * already have been adjusted to those of the contained content. 41 */ 42 google.cf.installer.InteractionDelegate.prototype.show = function() {}; 43 44 45 /** 46 * Receives notification that the installation flow is complete and that the 47 * IFrame and its decoration (if any) should be hidden and resources freed. 48 */ 49 google.cf.installer.InteractionDelegate.prototype.reset = function() {}; 50