Chromium Code Reviews| 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) { |
|
Fady Samuel
2014/05/21 18:02:37
Let's remove the listener after it gets called so
lazyboy
2014/05/21 19:19:07
Wo do rely on multiple call to this listener.
Ther
|
| + LOG('input.focus'); |
| + sendMessage(['response-seenFocus']); |
| + |
| + inputElement.addEventListener('blur', function(e) { |
|
Fady Samuel
2014/05/21 18:02:37
Let's remove the listener after it gets called so
lazyboy
2014/05/21 19:19:07
Done.
|
| + 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']); |
| }); |