| // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| function dartPrint(msg) { |
| window.parent.postMessage(String(msg), "*"); |
| } |
| |
| window.onerror = function (message, url, lineNumber) { |
| window.parent.postMessage( |
| ["error", {message: message, url: url, lineNumber: lineNumber}], "*"); |
| }; |
| |
| function onMessageReceived(event) { |
| var data = event.data; |
| if (data instanceof Array) { |
| if (data.length == 2 && data[0] == 'source') { |
| var script = document.createElement('script'); |
| script.innerHTML = data[1]; |
| script.type = 'application/javascript'; |
| document.head.appendChild(script); |
| return; |
| } |
| } |
| } |
| |
| window.addEventListener("message", onMessageReceived, false); |
| |
| (function () { |
| function postScrollHeight() { |
| window.parent.postMessage( |
| ["scrollHeight", document.documentElement.scrollHeight], "*"); |
| } |
| |
| var mutationObserverConstructor = |
| window.MutationObserver || |
| window.WebKitMutationObserver || |
| window.MozMutationObserver; |
| |
| var observer = new mutationObserverConstructor(function(mutations) { |
| postScrollHeight() |
| window.setTimeout(postScrollHeight, 500); |
| }); |
| |
| observer.observe( |
| document.body, |
| { attributes: true, |
| childList: true, |
| characterData: true, |
| subtree: true }); |
| })(); |