| Index: chrome/test/data/extensions/platform_apps/web_view/focus/inject_focus.js
|
| diff --git a/chrome/test/data/extensions/platform_apps/web_view/focus/inject_focus.js b/chrome/test/data/extensions/platform_apps/web_view/focus/inject_focus.js
|
| index 5455099034973fae6da2626ecd258f2691e9d3b1..323c8a095502257c86a6217b3e7e5dee37f7f73a 100644
|
| --- a/chrome/test/data/extensions/platform_apps/web_view/focus/inject_focus.js
|
| +++ b/chrome/test/data/extensions/platform_apps/web_view/focus/inject_focus.js
|
| @@ -3,22 +3,67 @@
|
| // found in the LICENSE file.
|
|
|
| var embedder = null;
|
| +var inputElement;
|
| +var waitingForBlur = false;
|
| +var seenBlurAfterFocus = false;
|
| +
|
| +var LOG = function(msg) {
|
| + window.console.log(msg);
|
| +};
|
| +
|
| +var sendMessage = function(data) {
|
| + embedder.postMessage(JSON.stringify(data), '*');
|
| +};
|
| +
|
| +var waitForBlurAfterFocus = function() {
|
| + LOG('seenBlurAfterFocus: ' + seenBlurAfterFocus);
|
| + if (seenBlurAfterFocus) {
|
| + // Already seen it.
|
| + sendMessage(['response-seenBlurAfterFocus']);
|
| + return;
|
| + }
|
| +
|
| + // Otherwise we will wait.
|
| + waitingForBlur = true;
|
| +};
|
| +
|
| +var waitForFocus = function() {
|
| + inputElement = document.createElement('input');
|
| + inputElement.addEventListener('focus', function(e) {
|
| + LOG('input.focus');
|
| + sendMessage(['response-seenFocus']);
|
| +
|
| + inputElement.addEventListener('blur', function(e) {
|
| + seenBlurAfterFocus = true;
|
| + if (waitingForBlur) {
|
| + sendMessage(['response-seenBlurAfterFocus']);
|
| + }
|
| + });
|
| + });
|
| + document.body.appendChild(inputElement);
|
| +
|
| + inputElement.focus();
|
| +};
|
| +
|
| window.addEventListener('message', function(e) {
|
| var data = JSON.parse(e.data);
|
| if (data[0] == 'connect') {
|
| embedder = e.source;
|
| - var msg = ['connected'];
|
| - embedder.postMessage(JSON.stringify(msg), '*');
|
| - return;
|
| + sendMessage(['connected']);
|
| + } else if (data[0] == 'request-hasFocus') {
|
| + var hasFocus = document.hasFocus();
|
| + sendMessage(['response-hasFocus', hasFocus]);
|
| + } else if (data[0] == 'request-waitForFocus') {
|
| + waitForFocus();
|
| + } else if (data[0] == 'request-waitForBlurAfterFocus') {
|
| + waitForBlurAfterFocus();
|
| }
|
| });
|
|
|
| window.addEventListener('focus', function(e) {
|
| - var msg = ['focused'];
|
| - embedder.postMessage(JSON.stringify(msg), '*');
|
| + sendMessage(['focused']);
|
| });
|
|
|
| window.addEventListener('blur', function(e) {
|
| - var msg = ['blurred'];
|
| - embedder.postMessage(JSON.stringify(msg), '*');
|
| + sendMessage(['blurred']);
|
| });
|
|
|