| Index: chrome/common/extensions/docs/examples/api/devtools/inspectedWindow/chrome-preprocessor/Panel/InspectedWindowLoadMonitor.js
|
| diff --git a/chrome/common/extensions/docs/examples/api/devtools/inspectedWindow/chrome-preprocessor/Panel/InspectedWindowLoadMonitor.js b/chrome/common/extensions/docs/examples/api/devtools/inspectedWindow/chrome-preprocessor/Panel/InspectedWindowLoadMonitor.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..80421f58c27cda6cc53f0015f5221e167812786c
|
| --- /dev/null
|
| +++ b/chrome/common/extensions/docs/examples/api/devtools/inspectedWindow/chrome-preprocessor/Panel/InspectedWindowLoadMonitor.js
|
| @@ -0,0 +1,53 @@
|
| +// Copyright (c) 2013 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +/** @fileoverview The chrome.devtools API does not support notifications from
|
| + * within a Web page nor does it report on events occuring in the page. For now
|
| + * we poll the page to determine a reasonable time to report the scripts.
|
| + */
|
| +
|
| +(function() {
|
| + /*
|
| + * @param {function} Called after the 'load' event on the inspected window
|
| + * @return {function} A function to be injected into the inspected window.
|
| + */
|
| + function LoadMonitor(onLoadedCallback) {
|
| +
|
| + function checkForLoad() {
|
| + var expr = 'window.__inspectedWindowLoaded';
|
| + function onEval(isLoaded, isException) {
|
| + if (isException)
|
| + throw new Error('Eval failed for ' + expr, isException.value);
|
| + if (isLoaded)
|
| + onLoadedCallback();
|
| + else
|
| + pollForLoad();
|
| + }
|
| + chrome.devtools.inspectedWindow.eval(expr, onEval);
|
| + }
|
| +
|
| + function pollForLoad() {
|
| + setTimeout(checkForLoad, 200);
|
| + }
|
| +
|
| + pollForLoad();
|
| + }
|
| +
|
| + LoadMonitor.prototype = {
|
| + // This function should be converted to a string and run in the Web page
|
| + injectedScript: function() {
|
| + // Initialize a secret data structure.
|
| + window.__inspectedWindowLoaded = false;
|
| + window.addEventListener('load', function() {
|
| + window.__inspectedWindowLoaded = true;
|
| + console.log('loaded');
|
| + });
|
| + }
|
| + };
|
| +
|
| + window.InspectedWindow = window.InspectedWindow || {};
|
| + InspectedWindow.LoadMonitor = LoadMonitor;
|
| +})();
|
| +
|
| +
|
|
|