Chromium Code Reviews| Index: ppapi/tests/extensions/background_keepalive/background.js |
| diff --git a/ppapi/tests/extensions/background_keepalive/background.js b/ppapi/tests/extensions/background_keepalive/background.js |
| index cd649c105d06e0b7933596e5f80fce5675c48a66..6c4e3f9d8caa9171e94038d642ee59c00ebeca0c 100644 |
| --- a/ppapi/tests/extensions/background_keepalive/background.js |
| +++ b/ppapi/tests/extensions/background_keepalive/background.js |
| @@ -2,20 +2,21 @@ |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| -var NaClModulesExpected = 0; |
| -var NaClModulesLoaded = 0; |
| +var modulesCreated = 0; |
| // Indicate load success. |
| -function moduleDidLoad() { |
| - NaClModulesLoaded++; |
| - if (NaClModulesLoaded == NaClModulesExpected) |
| - chrome.test.sendMessage("nacl_modules_loaded", handleChromeTestMessage); |
| +function moduleDidLoad(moduleNumber) { |
| + chrome.test.sendMessage("created_module:" + moduleNumber.toString(), |
|
Devlin
2017/03/21 01:08:15
nit: pref single quotes in js (looks like we were
Wez
2017/03/21 23:59:22
Done.
|
| + handleChromeTestMessage); |
| } |
| var handleChromeTestMessage = function (message) { |
| - NaClModules = document.querySelectorAll('embed'); |
| - for (var i = 0; i < NaClModules.length; i++) { |
| - NaClModules[i].postMessage(message); |
| + if (message == 'create_module') { |
| + createNaClEmbed(true); |
| + } else if (message == 'create_module_without_hack') { |
| + createNaClEmbed(false); |
| + } else if (message == 'destroy_module') { |
| + destroyNaClEmbed(); |
| } |
| } |
| @@ -23,19 +24,31 @@ function handleNaclMessage(message_event) { |
| console.log("handleNaclMessage: " + message_event.data); |
| } |
| -function createNaClEmbed() { |
| - NaClModulesExpected++; |
| +function createNaClEmbed(touch_embed_hack) { |
|
Devlin
2017/03/21 01:08:15
nit: prefer camelCaseVariableNames in JS
Wez
2017/03/21 23:59:22
Done.
|
| + modulesCreated++; |
| + |
| + var embed = document.createElement('embed'); |
| + embed.src = 'ppapi_tests_extensions_background_keepalive.nmf'; |
| + embed.type = 'application/x-nacl'; |
| var listener = document.createElement("div"); |
|
Devlin
2017/03/21 01:08:15
nit: do we need to wrap in a div?
Wez
2017/03/21 23:59:22
This is how the code was originally, and removing
|
| - listener.addEventListener("load", moduleDidLoad, true); |
| + listener.addEventListener("load", moduleDidLoad.bind(null, modulesCreated), |
| + true); |
|
Devlin
2017/03/21 01:08:15
nit: do we need to use capture?
Wez
2017/03/21 23:59:22
Yes, this is capturing modulesCreated as the first
|
| listener.addEventListener("message", handleNaclMessage, true); |
| - listener.innerHTML = '<embed' + |
| - ' src="ppapi_tests_extensions_background_keepalive.nmf"' + |
| - ' type="application/x-nacl" />'; |
| + listener.appendChild(embed); |
| + |
| document.body.appendChild(listener); |
| + |
| + if (touch_embed_hack) |
| + console.assert(embed.lastError == 0); |
| } |
| -// Create 2 embeds to verify that we can handle more than one. |
| -createNaClEmbed(); |
| -createNaClEmbed(); |
| +function destroyNaClEmbed() { |
| + moduleDivs = document.querySelectorAll('div'); |
| + console.assert(moduleDivs.length > 0); |
| + document.body.removeChild(moduleDivs[0]); |
| + |
| + chrome.test.sendMessage("destroyed_module", handleChromeTestMessage); |
| +} |
| +chrome.test.sendMessage("ready", handleChromeTestMessage); |