Javascript  |  42行  |  1.21 KB

// 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.

var NaClModulesExpected = 0;
var NaClModulesLoaded = 0;

// Indicate load success.
function moduleDidLoad() {
  NaClModulesLoaded++;
  if (NaClModulesLoaded == NaClModulesExpected)
    chrome.test.sendMessage("nacl_modules_loaded", handleChromeTestMessage);
}

var handleChromeTestMessage = function (message) {
  NaClModules = document.querySelectorAll('embed');
  for (var i = 0; i < NaClModules.length; i++) {
    NaClModules[i].postMessage(message);
  }
}

function handleNaclMessage(message_event) {
  console.log("handleNaclMessage: " + message_event.data);
}

function createNaClEmbed() {
  NaClModulesExpected++;

  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);
}

// Create 2 embeds to verify that we can handle more than one.
createNaClEmbed();
createNaClEmbed();