Remove support for storing WebAssembly.Modules in IDB ()

bugzilla-url: https://bugzilla.mozilla.org/show_bug.cgi?id=1469395
gecko-commit: b0f4e67b3ae1bd2e084e12a6dd6cd816636c3a8c
gecko-integration-branch: mozilla-inbound
gecko-reviewers: lth, janv, Ms2ger
diff --git a/IndexedDB/wasm-module-value.html b/IndexedDB/wasm-module-value.html
deleted file mode 100644
index 9fcfd78..0000000
--- a/IndexedDB/wasm-module-value.html
+++ /dev/null
@@ -1,109 +0,0 @@
-<!doctype html>
-<meta charset="utf8">
-<meta name="timeout" content="long">
-<title>IndexedDB: WebAssembly module values</title>
-<link rel="help" href="https://w3c.github.io/IndexedDB/">
-<link rel="help" href="https://webassembly.github.io/spec/">
-<link rel="author" href="pwnall@chromium.org" title="Victor Costan">
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="support-promises.js"></script>
-<script>
-'use strict';
-
-// Binary representation for a WASM module that exports an "inc" function.
-//
-// This test covers storing WASM modules in IndexedDB. Its failure should only
-// be debugged if WASM specification tests pass. To this end, the test does not
-// use the WASM module builder helpers, trading off WASM debuggability in return
-// for having the WASM wire bytes listed explicitly in the test body. Having the
-// wire bytes spelled out can be helpful when debugging IndexedDB failures.
-let wasm_module_bytes = new Uint8Array([
-  0x00, 0x61, 0x73, 0x6d,  // Magic.
-  0x01, 0x00, 0x00, 0x00,  // Version.
-  0x01, 0x06, 0x01,              // Type section - 6 bytes, 1 entry
-  0x60, 0x01, 0x7f, 0x01, 0x7f,  // Type 0. Function: (i32) -> (i32)
-  0x03, 0x02, 0x01,   // Function section - 2 bytes, 1 entry
-  0x00,               // Function 0: Type 0
-  0x07, 0x07, 0x01,              // Export section - 7 bytes, 1 entry
-  0x03, 0x69, 0x6e, 0x63,        // Export 1. { name: "inc"
-  0x00, 0x00,                    //             desc: function 0 }
-  0x0a, 0x09, 0x01,  // Code section: 9 bytes, 1 entry
-  0x07, 0x00,        // Function 1: 7 code bytes, 0 locals
-  0x20, 0x00,        //   getlocal 0
-  0x41, 0x01,        //   i32.const 1
-  0x6a,              //   i32.add
-  0x0b,              //   end
-]);
-
-promise_test(async testCase => {
-  const wasm_module = await WebAssembly.compile(wasm_module_bytes.buffer);
-
-  const database = await createDatabase(testCase, (database, transaction) => {
-    const store = database.createObjectStore('store');
-    store.put(wasm_module, 'key1');
-  });
-
-  const result = await new Promise((resolve, reject) => {
-    const transaction = database.transaction(['store'], 'readonly');
-    const store = transaction.objectStore('store');
-    const request = store.get('key1');
-    request.onsuccess = (event) => resolve(event.target.result);
-    request.onerror = (event) => reject(event.target.error);
-  });
-
-  database.close();
-
-  const instance = await WebAssembly.instantiate(result);
-  assert_equals(
-      instance.exports['inc'](42), 43, 'inc should increment its argument');
-}, 'WebAssembly module as an IndexedDB value');
-
-promise_test(async testCase => {
-  const wasm_module = await WebAssembly.compile(wasm_module_bytes.buffer);
-
-  const database = await createDatabase(testCase, (database, transaction) => {
-    const store = database.createObjectStore('store');
-    store.put({ module: wasm_module }, 'key1');
-  });
-
-  const result = await new Promise((resolve, reject) => {
-    const transaction = database.transaction(['store'], 'readonly');
-    const store = transaction.objectStore('store');
-    const request = store.get('key1');
-    request.onsuccess = (event) => resolve(event.target.result);
-    request.onerror = (event) => reject(event.target.error);
-  });
-
-  database.close();
-
-  const instance = await WebAssembly.instantiate(result.module);
-  assert_equals(
-      instance.exports['inc'](42), 43, 'inc should increment its argument');
-}, 'WebAssembly module in a JavaScript object IndexedDB value');
-
-promise_test(async testCase => {
-  const wasm_module = await WebAssembly.compile(wasm_module_bytes.buffer);
-
-  const database = await createDatabase(testCase, (database, transaction) => {
-    const store = database.createObjectStore('store', { keyPath: 'key' });
-    store.put({ key: 'key1', module: wasm_module });
-  });
-
-  const result = await new Promise((resolve, reject) => {
-    const transaction = database.transaction(['store'], 'readonly');
-    const store = transaction.objectStore('store');
-    const request = store.get('key1');
-    request.onsuccess = (event) => resolve(event.target.result);
-    request.onerror = (event) => reject(event.target.error);
-  });
-
-  database.close();
-
-  assert_equals('key1', result.key);
-  const instance = await WebAssembly.instantiate(result.module);
-  assert_equals(
-      instance.exports['inc'](42), 43, 'inc should increment its argument');
-}, 'WebAssembly module in an IndexedDB value with an inline key');
-
-</script>
diff --git a/wasm/wasm_idb_worker.js b/wasm/wasm_idb_worker.js
deleted file mode 100644
index 9d36d74..0000000
--- a/wasm/wasm_idb_worker.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright 2017 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.
-
-importScripts('/resources/testharness.js');
-importScripts('resources/load_wasm.js');
-importScripts('wasm_indexeddb_test.js');
-
-onmessage = function(e) {
-  if (e.data.command === "load") {
-    loadFromIndexedDB(e.data.db_name)
-      .then(res => {
-        if (res === 2) postMessage("ok");
-        else postMessage("error");
-      },
-            error => postMessage(error));
-  } else if (e.data.command === "save") {
-    createAndSaveToIndexedDB(e.data.db_name)
-      .then((m) => {
-        postMessage("ok");
-      },
-            () => postMessage("error"));
-  } else {
-    postMessage("unknown message: " + e.data);
-  }
-}
diff --git a/wasm/wasm_indexeddb_test.https.html b/wasm/wasm_indexeddb_test.https.html
deleted file mode 100644
index 320f046..0000000
--- a/wasm/wasm_indexeddb_test.https.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="/common/get-host-info.sub.js"></script>
-<script src="resources/load_wasm.js"></script>
-<script src="wasm_indexeddb_test.js"></script>
-</head>
-<body>
-<script>
-  promise_test(TestIndexedDBLoadStoreSecure, "serialize/deserialize to IndexedDB ");
-  promise_test(SaveToIDBAndLoadInWorker, "Save to IDB and load in worker");
-  promise_test(SaveToIDBInWorkerAndLoadInMain, "Save in worker to IDB and load in window");
-</script>
-</body>
-</html>
diff --git a/wasm/wasm_indexeddb_test.js b/wasm/wasm_indexeddb_test.js
deleted file mode 100644
index a5a582c..0000000
--- a/wasm/wasm_indexeddb_test.js
+++ /dev/null
@@ -1,118 +0,0 @@
-// Copyright 2016 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 db_name = "db_wasm_test";
-var obj_store = 'store';
-var module_key = 'my_module';
-
-function createAndSaveToIndexedDB(db_name) {
-  return createWasmModule()
-    .then(mod => new Promise((resolve, reject) => {
-      var delete_request = indexedDB.deleteDatabase(db_name);
-      delete_request.onsuccess = function() {
-        var open_request = indexedDB.open(db_name);
-        open_request.onupgradeneeded = function() {
-          var db = open_request.result;
-          db.createObjectStore(obj_store);
-        };
-        open_request.onsuccess = function() {
-          var db = open_request.result;
-          var tx = db.transaction(obj_store, 'readwrite');
-          var store = tx.objectStore(obj_store);
-          try {
-            store.put(mod, module_key);
-          } catch(e) {
-            db.close();
-            reject(e);
-            return;
-          }
-          tx.oncomplete = function() {
-            db.close();
-            resolve();
-            return;
-          };
-        };
-      };
-    }));
-}
-
-function loadFromIndexedDB(db_name) {
-  var open_request = indexedDB.open(db_name);
-
-  return new Promise((resolve, reject) => {
-    open_request.onsuccess = function() {
-      var db = open_request.result;
-      var tx = db.transaction(obj_store);
-      var store = tx.objectStore(obj_store);
-      var get_request = store.get(module_key);
-      get_request.onsuccess = function() {
-        var mod = get_request.result;
-        db.close();
-        assert_true(mod instanceof WebAssembly.Module);
-        try {
-          var instance = new WebAssembly.Instance(mod);
-          resolve(instance.exports.increment(1));
-        } catch(e) {
-          reject(e);
-        }
-      };
-      get_request.onerror = reject;
-    };
-  });
-}
-
-function TestIndexedDBLoadStoreSecure() {
-  return createAndSaveToIndexedDB(db_name)
-    .then(() => loadFromIndexedDB(db_name))
-    .then(res => assert_equals(res, 2),
-          error => assert_unreached(error));
-}
-
-function TestIndexedDBLoadStoreInsecure() {
-  return createAndSaveToIndexedDB(db_name)
-    .then(assert_unreached,
-          error => {
-            assert_true(error instanceof DOMException);
-            assert_equals(error.name, 'DataCloneError');
-          });
-}
-
-function SaveToIDBAndLoadInWorker() {
-  return createAndSaveToIndexedDB(db_name)
-  .then(() => {
-    var worker = new Worker("wasm_idb_worker.js");
-    return new Promise((resolve, reject) => {
-      worker.onmessage = function (event) {
-        if (typeof (event.data) == "string") {
-          resolve(event.data);
-          worker.terminate();
-          worker = undefined;
-        }
-      };
-      worker.postMessage({command: "load", db_name: db_name});
-    })
-  })
-.then(data => assert_equals(data, "ok"),
-    error => assert_unreached(error));
-}
-
-function SaveToIDBInWorkerAndLoadInMain() {
-  var worker = new Worker("wasm_idb_worker.js");
-  var ret = new Promise((resolve, reject) => {
-    worker.onmessage = function (event) {
-      if (typeof (event.data) == "string") {
-        resolve(event.data);
-        worker.terminate();
-        worker = undefined;
-      }
-    };
-  })
-  worker.postMessage({command: "save", db_name: db_name});
-  return ret
-    .then(data => assert_equals(data, "ok"),
-          error => assert_unreached(error))
-    .then(() => loadFromIndexedDB(db_name))
-    .then(res => assert_equals(res, 2),
-          assert_unreached);
-}