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..456374ef8d05cf9b95e3f584ff7a1a03da2aa99a 100644 |
--- a/ppapi/tests/extensions/background_keepalive/background.js |
+++ b/ppapi/tests/extensions/background_keepalive/background.js |
@@ -2,40 +2,53 @@ |
// 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(), |
+ 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(); |
} |
} |
-function handleNaclMessage(message_event) { |
- console.log("handleNaclMessage: " + message_event.data); |
+function handleNaclMessage(messageEvent) { |
+ console.log('handleNaclMessage: ' + messageEvent.data); |
} |
-function createNaClEmbed() { |
- NaClModulesExpected++; |
+function createNaClEmbed(touchEmbedHack) { |
+ modulesCreated++; |
+ |
+ var embed = document.createElement('embed'); |
+ embed.src = 'ppapi_tests_extensions_background_keepalive.nmf'; |
+ embed.type = 'application/x-nacl'; |
+ |
+ var listener = document.createElement('div'); |
+ listener.addEventListener('load', moduleDidLoad.bind(null, modulesCreated), |
+ true); |
+ listener.addEventListener('message', handleNaclMessage, true); |
+ listener.appendChild(embed); |
- var listener = document.createElement("div"); |
- listener.addEventListener("load", moduleDidLoad, true); |
- listener.addEventListener("message", handleNaclMessage, true); |
- listener.innerHTML = '<embed' + |
- ' src="ppapi_tests_extensions_background_keepalive.nmf"' + |
- ' type="application/x-nacl" />'; |
document.body.appendChild(listener); |
+ |
+ if (touchEmbedHack) |
+ 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); |