OLD | NEW |
(Empty) | |
| 1 // Copyright (c) 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 })(); |
OLD | NEW |