- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / test / data / extensions / platform_apps / ad_view / onloadcommit_ack / displayad.js
1 // Copyright 2013 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 (function() {
5   "use strict";
6
7   var document = window.document;
8
9   // Arbitrary data.
10   var publisherData = {
11     id: "rpaquayAds",
12     extras: {
13       colorText: "Red",
14       colorBg: "Default"
15     },
16   };
17
18   /**
19    * Displays message |statusText|, clearing it after 15 seconds.
20    */
21   var timeoutSequenceId = 0;
22   function displayStatus(statusText) {
23     timeoutSequenceId++;
24
25     var div = document.getElementById("my-status");
26     div.textContent = statusText;
27
28     var sequenceId = timeoutSequenceId;
29     setTimeout(function() {
30       if (sequenceId === timeoutSequenceId) {
31         div.textContent = "";
32       }
33     }, 15000);
34   }
35
36   /**
37    * Displays size of ads when an ad has just been displayed.
38    */
39   function adDisplayed(source, appMessage) {
40     var adview = document.getElementById("my-adview");
41     adview.style.height = appMessage.data.adSize.height;
42
43     displayStatus("Ad displayed( " + appMessage.sequenceNumber + "): " +
44                   "height=" + appMessage.data.adSize.height);
45   }
46
47   /**
48    * Displays publisher data information when an ad has just been clicked.
49    */
50   function adClicked(source, appMessage) {
51     displayStatus("Ad clicked(" + appMmessage.sequenceNumber + "): " +
52                   "publisher id=" + appMessage.publisherData.id);
53   }
54
55   /**
56    * Dispatches |appMessage| according to message value.
57    */
58   function processAppMessage(source, appMessage) {
59     if (appMessage.message == "ad-displayed") {
60       adDisplayed(source, appMessage);
61     }
62     else if (appMessage.message == "ad-clicked") {
63       adClicked(source, appMessage);
64     }
65   }
66
67   /**
68    * Handles "message" event.
69    */
70   function onPostMessage(event) {
71     processAppMessage(event.source, event.data);
72   }
73
74   /**
75    * Handles "DOMContentLoaded" event.
76    */
77   function onDocumentReady() {
78     var button = document.getElementById('display-ad');
79     var adview = document.getElementById("my-adview");
80
81     // Enable "Display Ad" button when the adview content is loaded
82     adview.addEventListener('loadcommit', function() {
83       button.disabled = false;
84       button.value = "Display Ad";
85       button.addEventListener('click', function () {
86         adview.contentWindow.postMessage({
87           message: "display-ad",
88           publisherData: publisherData
89         }, "*");
90       }, false);
91     });
92   }
93
94   //
95   // Register global event listeners.
96   //
97   window.addEventListener("message", onPostMessage, false);
98   document.addEventListener('DOMContentLoaded', onDocumentReady, false);
99
100 })();