Bug 1314057 - Remove var viewer tests; remove sources tests r=jlast
authorDavid Walsh <dwalsh@mozilla.com>
Tue, 02 Oct 2018 12:39:22 -0500
changeset 487534 61875633b2c215ccba313122257c6521ddb65617
parent 487533 e503bf1a29c546253fac7ddce6b8ebce9ce5f3ed
child 487535 63b06faf2f9e34510dd5661bb9ac20211d56ceac
push id246
push userfmarier@mozilla.com
push dateSat, 13 Oct 2018 00:15:40 +0000
reviewersjlast
bugs1314057
milestone64.0a1
Bug 1314057 - Remove var viewer tests; remove sources tests r=jlast
devtools/client/debugger/test/mochitest/browser2.ini
devtools/client/debugger/test/mochitest/browser_dbg_reload-same-script.js
devtools/client/debugger/test/mochitest/browser_dbg_sources-labels.js
devtools/client/debugger/test/mochitest/browser_dbg_sources-large.js
devtools/client/debugger/test/mochitest/browser_dbg_sources-sorting.js
devtools/client/debugger/test/mochitest/browser_dbg_sources-webext-contentscript.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-01.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-02.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-03.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-04.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-05.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-06.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-07.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-08.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-accessibility.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-data.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-edit-cancel.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-edit-click.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-edit-getset-01.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-edit-getset-02.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-edit-value-01.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-edit-value-02.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-edit-watch.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-filter-01.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-filter-02.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-filter-03.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-filter-04.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-filter-05.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-filter-pref.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-filter-searchbox.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-frame-parameters-01.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-frame-parameters-02.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-frame-parameters-03.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-frame-with.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-frozen-sealed-nonext.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-hide-non-enums.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-large-array-buffer.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-map-set.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-override-01.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-override-02.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-popup-01.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-popup-02.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-popup-03.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-popup-04.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-popup-05.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-popup-06.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-popup-07.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-popup-08.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-popup-09.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-popup-10.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-popup-11.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-popup-12.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-popup-13.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-popup-14.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-popup-15.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-popup-16.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-popup-17.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-reexpand-01.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-reexpand-02.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-reexpand-03.js
devtools/client/debugger/test/mochitest/browser_dbg_variables-view-webidl.js
devtools/client/debugger/test/mochitest/browser_dbg_watch-expressions-01.js
devtools/client/debugger/test/mochitest/browser_dbg_watch-expressions-02.js
--- a/devtools/client/debugger/test/mochitest/browser2.ini
+++ b/devtools/client/debugger/test/mochitest/browser2.ini
@@ -144,212 +144,31 @@ skip-if = e10s && debug
 uses-unsafe-cpows = true
 skip-if = true # Bug 1177730
 [browser_dbg_promises-fulfillment-stack.js]
 uses-unsafe-cpows = true
 skip-if = e10s && debug
 [browser_dbg_promises-rejection-stack.js]
 uses-unsafe-cpows = true
 skip-if = e10s && debug
-[browser_dbg_reload-same-script.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
 [browser_dbg_sources-cache.js]
 uses-unsafe-cpows = true
 [browser_dbg_sources-iframe-reload.js]
 uses-unsafe-cpows = true
 skip-if = (os == "linux" && debug && bits == 64) #Bug 1455225, disable on Linux x64 debug for frequent failures
-[browser_dbg_sources-labels.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_sources-large.js]
-uses-unsafe-cpows = true
-[browser_dbg_sources-sorting.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
 [browser_dbg_sources-bookmarklet.js]
 uses-unsafe-cpows = true
 skip-if = e10s && debug
-[browser_dbg_sources-webext-contentscript.js]
-uses-unsafe-cpows = true
 [browser_dbg_split-console-paused-reload.js]
 skip-if = true # Bug 1288348 - previously e10s && debug
 [browser_dbg_target-scoped-actor-01.js]
 [browser_dbg_target-scoped-actor-02.js]
 [browser_dbg_terminate-on-tab-close.js]
 uses-unsafe-cpows = true
 skip-if = e10s && debug
-[browser_dbg_variables-view-01.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_variables-view-02.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_variables-view-03.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_variables-view-04.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_variables-view-05.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_variables-view-06.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_variables-view-07.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_variables-view-08.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_variables-view-accessibility.js]
-uses-unsafe-cpows = true
-subsuite = clipboard
-skip-if = (e10s && debug) || (os == 'linux' && bits == 32 && debug) # bug 1328915, disable linux32 debug devtools for timeouts
-[browser_dbg_variables-view-data.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_variables-view-edit-cancel.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_variables-view-edit-click.js]
-skip-if = e10s || (os == 'mac' || os == 'win') && (debug == false) # Bug 986166
-[browser_dbg_variables-view-edit-getset-01.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_variables-view-edit-getset-02.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_variables-view-edit-value-01.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_variables-view-edit-value-02.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_variables-view-edit-watch.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_variables-view-filter-01.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_variables-view-filter-02.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_variables-view-filter-03.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_variables-view-filter-04.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_variables-view-filter-05.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_variables-view-filter-pref.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_variables-view-filter-searchbox.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_variables-view-frame-parameters-01.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_variables-view-frame-parameters-02.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_variables-view-frame-parameters-03.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_variables-view-frame-with.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_variables-view-frozen-sealed-nonext.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_variables-view-hide-non-enums.js]
-uses-unsafe-cpows = true
-[browser_dbg_variables-view-large-array-buffer.js]
-uses-unsafe-cpows = true
-[browser_dbg_variables-view-map-set.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_variables-view-override-01.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_variables-view-override-02.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_variables-view-popup-01.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_variables-view-popup-02.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_variables-view-popup-03.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_variables-view-popup-04.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_variables-view-popup-05.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_variables-view-popup-06.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_variables-view-popup-07.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_variables-view-popup-08.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_variables-view-popup-09.js]
-uses-unsafe-cpows = true
-skip-if = (e10s && debug) || (os == "mac" || (os == "linux" && bits == 64)) # bug 1373127 for frequent timeouts
-[browser_dbg_variables-view-popup-10.js]
-uses-unsafe-cpows = true
-skip-if = (e10s && debug) || (os == "win" && !debug) # bug 1291027
-[browser_dbg_variables-view-popup-11.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_variables-view-popup-12.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_variables-view-popup-13.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_variables-view-popup-14.js]
-skip-if = true # Bug 1029545
-[browser_dbg_variables-view-popup-15.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_variables-view-popup-16.js]
-uses-unsafe-cpows = true
-skip-if = e10s  && debug
-[browser_dbg_variables-view-popup-17.js]
-uses-unsafe-cpows = true
-skip-if = e10s  && debug
-[browser_dbg_variables-view-reexpand-01.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_variables-view-reexpand-02.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_variables-view-reexpand-03.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_variables-view-webidl.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_watch-expressions-01.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
-[browser_dbg_watch-expressions-02.js]
-uses-unsafe-cpows = true
-skip-if = e10s && debug
 [browser_dbg_worker-console-01.js]
 skip-if = true # bug 1368569
 [browser_dbg_worker-console-02.js]
 skip-if = e10s && debug
 [browser_dbg_worker-console-03.js]
 skip-if = debug # bug 1334683
 [browser_dbg_worker-console-04.js]
 skip-if = e10s && debug
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_reload-same-script.js
+++ /dev/null
@@ -1,88 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Tests if the same source is shown after a page is reloaded.
- */
-
-const TAB_URL = EXAMPLE_URL + "doc_script-switching-01.html";
-const FIRST_URL = EXAMPLE_URL + "code_script-switching-01.js";
-const SECOND_URL = EXAMPLE_URL + "code_script-switching-02.js";
-
-function test() {
-  // Debug test slaves are a bit slow at this test.
-  requestLongerTimeout(2);
-
-  let options = {
-    source: FIRST_URL,
-    line: 1
-  };
-  initDebugger(TAB_URL, options).then(([aTab,, aPanel]) => {
-    const gTab = aTab;
-    const gPanel = aPanel;
-    const gDebugger = aPanel.panelWin;
-    const gTarget = gDebugger.gTarget;
-    const gSources = gDebugger.DebuggerView.Sources;
-    const queries = gDebugger.require("./content/queries");
-    const actions = bindActionCreators(gPanel);
-    const getState = gDebugger.DebuggerController.getState;
-    let gStep = 0;
-
-    function reloadPage() {
-      const navigated = waitForNavigation(gPanel);
-      reload(gPanel);
-      return navigated;
-    }
-
-    function switchAndReload(aUrl) {
-      actions.selectSource(getSourceForm(gSources, aUrl));
-      return reloadPage();
-    }
-
-    function testCurrentSource(aUrl, aExpectedUrl = aUrl) {
-      const prefSource = getSourceURL(gSources, gSources.preferredValue);
-      const selSource = getSourceURL(gSources, gSources.selectedValue);
-
-      info("Currently preferred source: '" + prefSource + "'.");
-      info("Currently selected source: '" + selSource + "'.");
-
-      is(prefSource, aExpectedUrl,
-         "The preferred source url wasn't set correctly (" + gStep + ").");
-      is(selSource, aUrl,
-         "The selected source isn't the correct one (" + gStep + ").");
-    }
-
-    function performTest() {
-      switch (gStep++) {
-        case 0:
-          testCurrentSource(FIRST_URL, null);
-          reloadPage().then(performTest);
-          break;
-        case 1:
-          testCurrentSource(FIRST_URL);
-          reloadPage().then(performTest);
-          break;
-        case 2:
-          testCurrentSource(FIRST_URL);
-          switchAndReload(SECOND_URL).then(performTest);
-          break;
-        case 3:
-          testCurrentSource(SECOND_URL);
-          reloadPage().then(performTest);
-          break;
-        case 4:
-          testCurrentSource(SECOND_URL);
-          reloadPage().then(performTest);
-          break;
-        case 5:
-          testCurrentSource(SECOND_URL);
-          closeDebuggerAndFinish(gPanel);
-          break;
-      }
-    }
-
-    performTest();
-  });
-}
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_sources-labels.js
+++ /dev/null
@@ -1,172 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Tests that urls are correctly shortened to unique labels.
- */
-
-const TAB_URL = EXAMPLE_URL + "doc_recursion-stack.html";
-const { ELLIPSIS } = require("devtools/shared/l10n");
-
-function test() {
-  let gTab, gPanel, gDebugger;
-  let gSources, gUtils;
-
-  let options = {
-    source: TAB_URL,
-    line: 1
-  };
-  initDebugger(TAB_URL, options).then(Task.async(function* ([aTab,, aPanel]) {
-    gTab = aTab;
-    gPanel = aPanel;
-    gDebugger = gPanel.panelWin;
-    gSources = gDebugger.DebuggerView.Sources;
-    gUtils = gDebugger.SourceUtils;
-
-    let nananana = new Array(20).join(NaN);
-
-    // Test trimming url queries.
-
-    let someUrl = "a/b/c.d?test=1&random=4#reference";
-    let shortenedUrl = "a/b/c.d";
-    is(gUtils.trimUrlQuery(someUrl), shortenedUrl,
-      "Trimming the url query isn't done properly.");
-
-    // Test trimming long urls with an ellipsis.
-
-    let largeLabel = new Array(100).join("Beer can in Jamaican sounds like Bacon!");
-    let trimmedLargeLabel = gUtils.trimUrlLength(largeLabel, 1234);
-    is(trimmedLargeLabel.length, 1235,
-      "Trimming large labels isn't done properly.");
-    ok(trimmedLargeLabel.endsWith(ELLIPSIS),
-      "Trimming large labels should add an ellipsis at the end : " + ELLIPSIS);
-
-    // Test the sources list behaviour with certain urls.
-
-    let urls = [
-      { href: "http://some.address.com/random/", leaf: "subrandom/" },
-      { href: "http://some.address.com/random/", leaf: "suprandom/?a=1" },
-      { href: "http://some.address.com/random/", leaf: "?a=1" },
-      { href: "https://another.address.org/random/subrandom/", leaf: "page.html" },
-
-      { href: "ftp://interesting.address.org/random/", leaf: "script.js" },
-      { href: "ftp://interesting.address.com/random/", leaf: "script.js" },
-      { href: "ftp://interesting.address.com/random/", leaf: "x/script.js" },
-      { href: "ftp://interesting.address.com/random/", leaf: "x/y/script.js?a=1" },
-      { href: "ftp://interesting.address.com/random/x/", leaf: "y/script.js?a=1&b=2" },
-      { href: "ftp://interesting.address.com/random/x/y/", leaf: "script.js?a=1&b=2&c=3" },
-      { href: "ftp://interesting.address.com/random/", leaf: "x/y/script.js?a=2" },
-      { href: "ftp://interesting.address.com/random/x/", leaf: "y/script.js?a=2&b=3" },
-      { href: "ftp://interesting.address.com/random/x/y/", leaf: "script.js?a=2&b=3&c=4" },
-
-      { href: "file://random/", leaf: "script_t1.js&a=1&b=2&c=3" },
-      { href: "file://random/", leaf: "script_t2_1.js#id" },
-      { href: "file://random/", leaf: "script_t2_2.js?a" },
-      { href: "file://random/", leaf: "script_t2_3.js&b" },
-      { href: "resource://random/", leaf: "script_t3_1.js#id?a=1&b=2" },
-      { href: "resource://random/", leaf: "script_t3_2.js?a=1&b=2#id" },
-      { href: "resource://random/", leaf: "script_t3_3.js&a=1&b=2#id" },
-
-      { href: nananana, leaf: "Batman!" + "{trim me, now and forevermore}" }
-    ];
-
-    is(gSources.itemCount, 1,
-      "Should contain the original source label in the sources widget.");
-    is(gSources.selectedIndex, 0,
-      "The first item in the sources widget should be selected (1).");
-    is(gSources.selectedItem.attachment.label, "doc_recursion-stack.html",
-      "The first item in the sources widget should be selected (2).");
-    is(getSelectedSourceURL(gSources), TAB_URL,
-      "The first item in the sources widget should be selected (3).");
-
-    let id = 0;
-    for (let { href, leaf } of urls) {
-      let url = href + leaf;
-      let actor = "actor" + id++;
-      let label = gUtils.trimUrlLength(gUtils.getSourceLabel(url));
-      let group = gUtils.getSourceGroup(url);
-      let dummy = document.createElement("label");
-      dummy.setAttribute("value", label);
-
-      gSources.push([dummy, actor], {
-        attachment: {
-          source: { actor: actor, url: url },
-          label: label,
-          group: group
-        }
-      });
-    }
-
-    info("Source locations:");
-    info(gSources.values.toSource());
-
-    info("Source attachments:");
-    info(gSources.attachments.toSource());
-
-    for (let { href, leaf, dupe } of urls) {
-      let url = href + leaf;
-      if (dupe) {
-        ok(!gSources.containsValue(getSourceActor(gSources, url)), "Shouldn't contain source: " + url);
-      } else {
-        ok(gSources.containsValue(getSourceActor(gSources, url)), "Should contain source: " + url);
-      }
-    }
-
-    ok(gSources.getItemForAttachment(e => e.label == "random/subrandom/"),
-      "Source (0) label is incorrect.");
-    ok(gSources.getItemForAttachment(e => e.label == "random/suprandom/?a=1"),
-      "Source (1) label is incorrect.");
-    ok(gSources.getItemForAttachment(e => e.label == "random/?a=1"),
-      "Source (2) label is incorrect.");
-    ok(gSources.getItemForAttachment(e => e.label == "page.html"),
-      "Source (3) label is incorrect.");
-
-    ok(gSources.getItemForAttachment(e => e.label == "script.js"),
-      "Source (4) label is incorrect.");
-    ok(gSources.getItemForAttachment(e => e.label == "random/script.js"),
-      "Source (5) label is incorrect.");
-    ok(gSources.getItemForAttachment(e => e.label == "random/x/script.js"),
-      "Source (6) label is incorrect.");
-    ok(gSources.getItemForAttachment(e => e.label == "script.js?a=1"),
-      "Source (7) label is incorrect.");
-
-    ok(gSources.getItemForAttachment(e => e.label == "script_t1.js"),
-      "Source (8) label is incorrect.");
-    ok(gSources.getItemForAttachment(e => e.label == "script_t2_1.js"),
-      "Source (9) label is incorrect.");
-    ok(gSources.getItemForAttachment(e => e.label == "script_t2_2.js"),
-      "Source (10) label is incorrect.");
-    ok(gSources.getItemForAttachment(e => e.label == "script_t2_3.js"),
-      "Source (11) label is incorrect.");
-    ok(gSources.getItemForAttachment(e => e.label == "script_t3_1.js"),
-      "Source (12) label is incorrect.");
-    ok(gSources.getItemForAttachment(e => e.label == "script_t3_2.js"),
-      "Source (13) label is incorrect.");
-    ok(gSources.getItemForAttachment(e => e.label == "script_t3_3.js"),
-      "Source (14) label is incorrect.");
-
-    ok(gSources.getItemForAttachment(e => e.label == nananana + "Batman!" + ELLIPSIS),
-      "Source (15) label is incorrect.");
-
-    is(gSources.itemCount, urls.filter(({ dupe }) => !dupe).length + 1,
-      "Didn't get the correct number of sources in the list.");
-
-    is(gSources.getItemByValue(getSourceActor(gSources, "http://some.address.com/random/subrandom/")).attachment.label,
-      "random/subrandom/",
-      "gSources.getItemByValue isn't functioning properly (0).");
-    is(gSources.getItemByValue(getSourceActor(gSources, "http://some.address.com/random/suprandom/?a=1")).attachment.label,
-      "random/suprandom/?a=1",
-      "gSources.getItemByValue isn't functioning properly (1).");
-
-    is(gSources.getItemForAttachment(e => e.label == "random/subrandom/").attachment.source.url,
-       "http://some.address.com/random/subrandom/",
-      "gSources.getItemForAttachment isn't functioning properly (0).");
-    is(gSources.getItemForAttachment(e => e.label == "random/suprandom/?a=1").attachment.source.url,
-      "http://some.address.com/random/suprandom/?a=1",
-      "gSources.getItemForAttachment isn't functioning properly (1).");
-
-    closeDebuggerAndFinish(gPanel);
-  }));
-}
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_sources-large.js
+++ /dev/null
@@ -1,80 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Tests that large files are treated differently in the debugger:
- *   1) No parsing to determine current symbol is attempted when
- *      starting a search
- */
-
-const TAB_URL = EXAMPLE_URL + "doc_function-search.html";
-
-function test() {
-  let options = {
-    source: EXAMPLE_URL + "code_function-search-01.js",
-    line: 1
-  };
-  initDebugger(TAB_URL, options).then(([aTab, aDebuggee, aPanel]) => {
-    const gTab = aTab;
-    const gDebuggee = aDebuggee;
-    const gPanel = aPanel;
-    const gDebugger = gPanel.panelWin;
-
-    const gEditor = gDebugger.DebuggerView.editor;
-    const gSources = gDebugger.DebuggerView.Sources;
-    const Filtering = gDebugger.DebuggerView.Filtering;
-
-    // Setting max size so that code_function-search-01.js will be
-    // considered a large file on first load
-    gDebugger.DebuggerView.LARGE_FILE_SIZE = 1;
-
-    function testLargeFile() {
-      ok(gEditor.getText().length > gDebugger.DebuggerView.LARGE_FILE_SIZE,
-         "First source is considered a large file.");
-      is(gEditor.getMode().name, "javascript",
-         "Editor is syntax highlighting.");
-      ok(gEditor.getText().includes("First source!"),
-         "Editor text contents appears to be correct.");
-
-      // Press ctrl+f with the cursor in a token
-      gEditor.focus();
-      gEditor.setCursor({ line: 3, ch: 10});
-      synthesizeKeyFromKeyTag(gDebugger.document.getElementById("tokenSearchKey"));
-      is(Filtering._searchbox.value, "#",
-        "Search box is NOT prefilled with current token");
-    }
-
-    function testSmallFile() {
-      ok(gEditor.getText().length < gDebugger.DebuggerView.LARGE_FILE_SIZE,
-         "Second source is considered a small file.");
-      is(gEditor.getMode().name, "javascript",
-         "Editor is syntax highlighting.");
-      ok(gEditor.getText().includes("First source!"),
-         "Editor text contents appears to be correct.");
-
-      // Press ctrl+f with the cursor in a token
-      gEditor.focus();
-      gEditor.setCursor({ line: 3, ch: 10});
-      synthesizeKeyFromKeyTag(gDebugger.document.getElementById("tokenSearchKey"));
-      is(Filtering._searchbox.value, "#test",
-        "Search box is prefilled with current token");
-    }
-
-    Task.spawn(function* () {
-      yield testLargeFile();
-
-      info("Making it appear as a small file and then reselecting 01.js");
-      gDebugger.DebuggerView.LARGE_FILE_SIZE = 1000;
-      gSources.selectedIndex = 1;
-      yield waitForSourceShown(gPanel, "-02.js");
-      gSources.selectedIndex = 0;
-      yield waitForSourceShown(gPanel, "-01.js");
-
-      yield testSmallFile();
-
-      closeDebuggerAndFinish(gPanel);
-    });
-  });
-}
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_sources-sorting.js
+++ /dev/null
@@ -1,141 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Tests that urls are correctly sorted when added to the sources widget.
- */
-
-const TAB_URL = EXAMPLE_URL + "doc_recursion-stack.html";
-
-var gTab, gPanel, gDebugger;
-var gSources, gUtils;
-
-function test() {
-  let options = {
-    source: TAB_URL,
-    line: 1
-  };
-  initDebugger(TAB_URL, options).then(([aTab,, aPanel]) => {
-    gTab = aTab;
-    gPanel = aPanel;
-    gDebugger = gPanel.panelWin;
-    gSources = gDebugger.DebuggerView.Sources;
-    gUtils = gDebugger.SourceUtils;
-
-    addSourceAndCheckOrder(1);
-    addSourceAndCheckOrder(2);
-    addSourceAndCheckOrder(3);
-    closeDebuggerAndFinish(gPanel);
-  });
-}
-
-function addSourceAndCheckOrder(aMethod) {
-  gSources.empty();
-  gSources.suppressSelectionEvents = true;
-
-  let urls = [
-    { href: "ici://some.address.com/random/", leaf: "subrandom/" },
-    { href: "ni://another.address.org/random/subrandom/", leaf: "page.html" },
-    { href: "san://interesting.address.gro/random/", leaf: "script.js" },
-    { href: "si://interesting.address.moc/random/", leaf: "script.js" },
-    { href: "si://interesting.address.moc/random/", leaf: "x/script.js" },
-    { href: "si://interesting.address.moc/random/", leaf: "x/y/script.js?a=1" },
-    { href: "si://interesting.address.moc/random/x/", leaf: "y/script.js?a=1&b=2" },
-    { href: "si://interesting.address.moc/random/x/y/", leaf: "script.js?a=1&b=2&c=3" }
-  ];
-
-  urls.sort(function (a, b) {
-    return Math.random() - 0.5;
-  });
-
-  let id = 0;
-
-  switch (aMethod) {
-    case 1:
-      for (let { href, leaf } of urls) {
-        let url = href + leaf;
-        let actor = "actor" + id++;
-        let label = gUtils.getSourceLabel(url);
-        let dummy = document.createElement("label");
-        gSources.push([dummy, actor], {
-          staged: true,
-          attachment: {
-            label: label
-          }
-        });
-      }
-      gSources.commit({ sorted: true });
-      break;
-
-    case 2:
-      for (let { href, leaf } of urls) {
-        let url = href + leaf;
-        let actor = "actor" + id++;
-        let label = gUtils.getSourceLabel(url);
-        let dummy = document.createElement("label");
-        gSources.push([dummy, actor], {
-          staged: false,
-          attachment: {
-            label: label
-          }
-        });
-      }
-      break;
-
-    case 3:
-      let i = 0;
-      for (; i < urls.length / 2; i++) {
-        let { href, leaf } = urls[i];
-        let url = href + leaf;
-        let actor = "actor" + id++;
-        let label = gUtils.getSourceLabel(url);
-        let dummy = document.createElement("label");
-        gSources.push([dummy, actor], {
-          staged: true,
-          attachment: {
-            label: label
-          }
-        });
-      }
-      gSources.commit({ sorted: true });
-
-      for (; i < urls.length; i++) {
-        let { href, leaf } = urls[i];
-        let url = href + leaf;
-        let actor = "actor" + id++;
-        let label = gUtils.getSourceLabel(url);
-        let dummy = document.createElement("label");
-        gSources.push([dummy, actor], {
-          staged: false,
-          attachment: {
-            label: label
-          }
-        });
-      }
-      break;
-  }
-
-  checkSourcesOrder(aMethod);
-}
-
-function checkSourcesOrder(aMethod) {
-  let attachments = gSources.attachments;
-
-  for (let i = 0; i < attachments.length - 1; i++) {
-    let first = attachments[i].label;
-    let second = attachments[i + 1].label;
-    ok(first < second,
-      "Using method " + aMethod + ", " +
-      "the sources weren't in the correct order: " + first + " vs. " + second);
-  }
-}
-
-registerCleanupFunction(function () {
-  gTab = null;
-  gPanel = null;
-  gDebugger = null;
-  gSources = null;
-  gUtils = null;
-});
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_sources-webext-contentscript.js
+++ /dev/null
@@ -1,63 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Make sure eval scripts appear in the source list
- */
-
-const ADDON_PATH = "addon-webext-contentscript.xpi";
-const TAB_URL = EXAMPLE_URL + "doc_script_webext_contentscript.html";
-
-const {WebExtensionPolicy} = Cu.getGlobalForObject(ChromeUtils.import("resource://gre/modules/Extension.jsm", {}));
-
-function test() {
-  let gPanel, gDebugger;
-  let gSources, gAddon;
-
-  let cleanup = function* (e) {
-    if (gAddon) {
-      // Remove the addon, if any.
-      yield removeAddon(gAddon);
-    }
-    if (gPanel) {
-      // Close the debugger panel, if any.
-      yield closeDebuggerAndFinish(gPanel);
-    } else {
-      // If no debugger panel was opened, call finish directly.
-      finish();
-    }
-  };
-
-  return Task.spawn(function* () {
-    gAddon = yield addTemporaryAddon(ADDON_PATH);
-    let {mozExtensionHostname} = WebExtensionPolicy.getByID(gAddon.id);
-
-    let options = {
-      source: `moz-extension://${mozExtensionHostname}/webext-content-script.js`,
-      line: 1
-    };
-    [,, gPanel] = yield initDebugger(TAB_URL, options);
-    gDebugger = gPanel.panelWin;
-    gSources = gDebugger.DebuggerView.Sources;
-
-    is(gSources.values.length, 2, "Should have 2 sources");
-
-    let item = gSources.getItemForAttachment(attachment => {
-      return attachment.source.url.includes("moz-extension");
-    });
-
-    ok(item, "Got the expected WebExtensions ContentScript source");
-    ok(item && item.attachment.source.url.includes(item.attachment.group),
-       "The source is in the expected source group");
-    is(item && item.attachment.label, "webext-content-script.js",
-       "Got the expected filename in the label");
-
-    yield cleanup();
-  }).catch((e) => {
-    ok(false, `Got an unexpected exception: ${e}`);
-    // Cleanup in case of failures in the above task.
-    return Task.spawn(cleanup);
-  });
-}
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-01.js
+++ /dev/null
@@ -1,132 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Tests that creating, collpasing and expanding scopes in the
- * variables view works as expected.
- */
-
-const TAB_URL = EXAMPLE_URL + "doc_recursion-stack.html";
-
-function test() {
-  let options = {
-    source: TAB_URL,
-    line: 1
-  };
-  initDebugger(TAB_URL, options).then(([aTab,, aPanel]) => {
-    let variables = aPanel.panelWin.DebuggerView.Variables;
-    let testScope = variables.addScope("test");
-
-    ok(testScope,
-      "Should have created a scope.");
-    ok(testScope.id.includes("test"),
-      "The newly created scope should have the default id set.");
-    is(testScope.name, "test",
-      "The newly created scope should have the desired name set.");
-
-    ok(!testScope.displayValue,
-      "The newly created scope should not have a displayed value (1).");
-    ok(!testScope.displayValueClassName,
-      "The newly created scope should not have a displayed value (2).");
-
-    ok(testScope.target,
-      "The newly created scope should point to a target node.");
-    ok(testScope.target.id.includes("test"),
-      "Should have the correct scope id on the element.");
-
-    is(testScope.target.querySelector(".name").getAttribute("value"), "test",
-      "Any new scope should have the designated name.");
-    is(testScope.target.querySelector(".variables-view-element-details.enum").childNodes.length, 0,
-      "Any new scope should have a container with no enumerable child nodes.");
-    is(testScope.target.querySelector(".variables-view-element-details.nonenum").childNodes.length, 0,
-      "Any new scope should have a container with no non-enumerable child nodes.");
-
-    ok(!testScope.expanded,
-      "Any new created scope should be initially collapsed.");
-    ok(testScope.visible,
-      "Any new created scope should be initially visible.");
-
-    let expandCallbackArg = null;
-    let collapseCallbackArg = null;
-    let toggleCallbackArg = null;
-    let hideCallbackArg = null;
-    let showCallbackArg = null;
-
-    testScope.onexpand = aScope => expandCallbackArg = aScope;
-    testScope.oncollapse = aScope => collapseCallbackArg = aScope;
-    testScope.ontoggle = aScope => toggleCallbackArg = aScope;
-    testScope.onhide = aScope => hideCallbackArg = aScope;
-    testScope.onshow = aScope => showCallbackArg = aScope;
-
-    testScope.expand();
-    ok(testScope.expanded,
-      "The testScope shouldn't be collapsed anymore.");
-    is(expandCallbackArg, testScope,
-      "The expandCallback wasn't called as it should.");
-
-    testScope.collapse();
-    ok(!testScope.expanded,
-      "The testScope should be collapsed again.");
-    is(collapseCallbackArg, testScope,
-      "The collapseCallback wasn't called as it should.");
-
-    testScope.expanded = true;
-    ok(testScope.expanded,
-      "The testScope shouldn't be collapsed anymore.");
-
-    testScope.toggle();
-    ok(!testScope.expanded,
-      "The testScope should be collapsed again.");
-    is(toggleCallbackArg, testScope,
-      "The toggleCallback wasn't called as it should.");
-
-    testScope.hide();
-    ok(!testScope.visible,
-      "The testScope should be invisible after hiding.");
-    is(hideCallbackArg, testScope,
-      "The hideCallback wasn't called as it should.");
-
-    testScope.show();
-    ok(testScope.visible,
-      "The testScope should be visible again.");
-    is(showCallbackArg, testScope,
-      "The showCallback wasn't called as it should.");
-
-    testScope.visible = false;
-    ok(!testScope.visible,
-      "The testScope should be invisible after hiding.");
-    ok(!testScope.expanded,
-      "The testScope should remember it is collapsed even if it is hidden.");
-
-    testScope.visible = true;
-    ok(testScope.visible,
-      "The testScope should be visible after reshowing.");
-    ok(!testScope.expanded,
-      "The testScope should remember it is collapsed after it is reshown.");
-
-    EventUtils.sendMouseEvent({ type: "mousedown", button: 1 },
-      testScope.target.querySelector(".title"),
-      aPanel.panelWin);
-
-    ok(!testScope.expanded,
-      "Clicking the testScope title with the right mouse button should't expand it.");
-
-    EventUtils.sendMouseEvent({ type: "mousedown" },
-      testScope.target.querySelector(".title"),
-      aPanel.panelWin);
-
-    ok(testScope.expanded,
-      "Clicking the testScope title should expand it.");
-
-    EventUtils.sendMouseEvent({ type: "mousedown" },
-      testScope.target.querySelector(".title"),
-      aPanel.panelWin);
-
-    ok(!testScope.expanded,
-      "Clicking again the testScope title should collapse it.");
-
-    closeDebuggerAndFinish(aPanel);
-  });
-}
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-02.js
+++ /dev/null
@@ -1,227 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Tests that creating, collapsing and expanding variables in the
- * variables view works as expected.
- */
-
-const TAB_URL = EXAMPLE_URL + "doc_recursion-stack.html";
-
-function test() {
-  let options = {
-    source: TAB_URL,
-    line: 1
-  };
-  initDebugger(TAB_URL, options).then(([aTab,, aPanel]) => {
-    let variables = aPanel.panelWin.DebuggerView.Variables;
-    let testScope = variables.addScope("test");
-    let testVar = testScope.addItem("something");
-    let duplVar = testScope.addItem("something");
-
-    info("Scope id: " + testScope.id);
-    info("Scope name: " + testScope.name);
-    info("Variable id: " + testVar.id);
-    info("Variable name: " + testVar.name);
-
-    ok(testScope,
-      "Should have created a scope.");
-    is(duplVar, testVar,
-      "Shouldn't be able to duplicate variables in the same scope.");
-
-    ok(testVar,
-      "Should have created a variable.");
-    ok(testVar.id.includes("something"),
-      "The newly created variable should have the default id set.");
-    is(testVar.name, "something",
-      "The newly created variable should have the desired name set.");
-
-    ok(!testVar.displayValue,
-      "The newly created variable should not have a displayed value yet (1).");
-    ok(!testVar.displayValueClassName,
-      "The newly created variable should not have a displayed value yet (2).");
-
-    ok(testVar.target,
-      "The newly created scope should point to a target node.");
-    ok(testVar.target.id.includes("something"),
-      "Should have the correct variable id on the element.");
-
-    is(testVar.target.querySelector(".name").getAttribute("value"), "something",
-      "Any new variable should have the designated name.");
-    is(testVar.target.querySelector(".variables-view-element-details.enum").childNodes.length, 0,
-      "Any new variable should have a container with no enumerable child nodes.");
-    is(testVar.target.querySelector(".variables-view-element-details.nonenum").childNodes.length, 0,
-      "Any new variable should have a container with no non-enumerable child nodes.");
-
-    ok(!testVar.expanded,
-      "Any new created scope should be initially collapsed.");
-    ok(testVar.visible,
-      "Any new created scope should be initially visible.");
-
-    let expandCallbackArg = null;
-    let collapseCallbackArg = null;
-    let toggleCallbackArg = null;
-    let hideCallbackArg = null;
-    let showCallbackArg = null;
-
-    testVar.onexpand = aScope => expandCallbackArg = aScope;
-    testVar.oncollapse = aScope => collapseCallbackArg = aScope;
-    testVar.ontoggle = aScope => toggleCallbackArg = aScope;
-    testVar.onhide = aScope => hideCallbackArg = aScope;
-    testVar.onshow = aScope => showCallbackArg = aScope;
-
-    testVar.expand();
-    ok(testVar.expanded,
-      "The testVar shouldn't be collapsed anymore.");
-    is(expandCallbackArg, testVar,
-      "The expandCallback wasn't called as it should.");
-
-    testVar.collapse();
-    ok(!testVar.expanded,
-      "The testVar should be collapsed again.");
-    is(collapseCallbackArg, testVar,
-      "The collapseCallback wasn't called as it should.");
-
-    testVar.expanded = true;
-    ok(testVar.expanded,
-      "The testVar shouldn't be collapsed anymore.");
-
-    testVar.toggle();
-    ok(!testVar.expanded,
-      "The testVar should be collapsed again.");
-    is(toggleCallbackArg, testVar,
-      "The toggleCallback wasn't called as it should.");
-
-    testVar.hide();
-    ok(!testVar.visible,
-      "The testVar should be invisible after hiding.");
-    is(hideCallbackArg, testVar,
-      "The hideCallback wasn't called as it should.");
-
-    testVar.show();
-    ok(testVar.visible,
-      "The testVar should be visible again.");
-    is(showCallbackArg, testVar,
-      "The showCallback wasn't called as it should.");
-
-    testVar.visible = false;
-    ok(!testVar.visible,
-      "The testVar should be invisible after hiding.");
-    ok(!testVar.expanded,
-      "The testVar should remember it is collapsed even if it is hidden.");
-
-    testVar.visible = true;
-    ok(testVar.visible,
-      "The testVar should be visible after reshowing.");
-    ok(!testVar.expanded,
-      "The testVar should remember it is collapsed after it is reshown.");
-
-    EventUtils.sendMouseEvent({ type: "mousedown" },
-      testVar.target.querySelector(".name"),
-      aPanel.panelWin);
-
-    ok(testVar.expanded,
-      "Clicking the testVar name should expand it.");
-
-    EventUtils.sendMouseEvent({ type: "mousedown" },
-      testVar.target.querySelector(".name"),
-      aPanel.panelWin);
-
-    ok(!testVar.expanded,
-      "Clicking again the testVar name should collapse it.");
-
-    EventUtils.sendMouseEvent({ type: "mousedown" },
-      testVar.target.querySelector(".arrow"),
-      aPanel.panelWin);
-
-    ok(testVar.expanded,
-      "Clicking the testVar arrow should expand it.");
-
-    EventUtils.sendMouseEvent({ type: "mousedown" },
-      testVar.target.querySelector(".arrow"),
-      aPanel.panelWin);
-
-    ok(!testVar.expanded,
-      "Clicking again the testVar arrow should collapse it.");
-
-    EventUtils.sendMouseEvent({ type: "mousedown" },
-      testVar.target.querySelector(".title"),
-      aPanel.panelWin);
-
-    ok(testVar.expanded,
-      "Clicking the testVar title should expand it again.");
-
-    testVar.addItem("child", {
-      value: {
-        type: "object",
-        class: "Object"
-      }
-    });
-
-    let testChild = testVar.get("child");
-    ok(testChild,
-      "Should have created a child property.");
-    ok(testChild.id.includes("child"),
-      "The newly created property should have the default id set.");
-    is(testChild.name, "child",
-      "The newly created property should have the desired name set.");
-
-    is(testChild.displayValue, "Object",
-      "The newly created property should not have a displayed value yet (1).");
-    is(testChild.displayValueClassName, "token-other",
-      "The newly created property should not have a displayed value yet (2).");
-
-    ok(testChild.target,
-      "The newly created scope should point to a target node.");
-    ok(testChild.target.id.includes("child"),
-      "Should have the correct property id on the element.");
-
-    is(testChild.target.querySelector(".name").getAttribute("value"), "child",
-      "Any new property should have the designated name.");
-    is(testChild.target.querySelector(".variables-view-element-details.enum").childNodes.length, 0,
-      "Any new property should have a container with no enumerable child nodes.");
-    is(testChild.target.querySelector(".variables-view-element-details.nonenum").childNodes.length, 0,
-      "Any new property should have a container with no non-enumerable child nodes.");
-
-    ok(!testChild.expanded,
-      "Any new created scope should be initially collapsed.");
-    ok(testChild.visible,
-      "Any new created scope should be initially visible.");
-
-    EventUtils.sendMouseEvent({ type: "mousedown" },
-      testChild.target.querySelector(".name"),
-      aPanel.panelWin);
-
-    ok(testChild.expanded,
-      "Clicking the testChild name should expand it.");
-
-    EventUtils.sendMouseEvent({ type: "mousedown" },
-      testChild.target.querySelector(".name"),
-      aPanel.panelWin);
-
-    ok(!testChild.expanded,
-      "Clicking again the testChild name should collapse it.");
-
-    EventUtils.sendMouseEvent({ type: "mousedown" },
-      testChild.target.querySelector(".arrow"),
-      aPanel.panelWin);
-
-    ok(testChild.expanded,
-      "Clicking the testChild arrow should expand it.");
-
-    EventUtils.sendMouseEvent({ type: "mousedown" },
-      testChild.target.querySelector(".arrow"),
-      aPanel.panelWin);
-
-    ok(!testChild.expanded,
-      "Clicking again the testChild arrow should collapse it.");
-
-    EventUtils.sendMouseEvent({ type: "mousedown" },
-      testChild.target.querySelector(".title"),
-      aPanel.panelWin);
-
-    closeDebuggerAndFinish(aPanel);
-  });
-}
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-03.js
+++ /dev/null
@@ -1,157 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Tests that recursively creating properties in the variables view works
- * as expected.
- */
-
-const TAB_URL = EXAMPLE_URL + "doc_recursion-stack.html";
-
-function test() {
-  let options = {
-    source: TAB_URL,
-    line: 1
-  };
-  initDebugger(TAB_URL, options).then(([aTab,, aPanel]) => {
-    let variables = aPanel.panelWin.DebuggerView.Variables;
-    let testScope = variables.addScope("test");
-
-    is(testScope.target.querySelectorAll(".variables-view-element-details.enum").length, 1,
-      "One enumerable container should be present in the scope.");
-    is(testScope.target.querySelectorAll(".variables-view-element-details.nonenum").length, 1,
-      "One non-enumerable container should be present in the scope.");
-    is(testScope.target.querySelector(".variables-view-element-details.enum").childNodes.length, 0,
-      "No enumerable variables should be present in the scope.");
-    is(testScope.target.querySelector(".variables-view-element-details.nonenum").childNodes.length, 0,
-      "No non-enumerable variables should be present in the scope.");
-
-    testScope.addItem("something", {
-      value: {
-        type: "object",
-        class: "Object"
-      },
-      enumerable: true
-    });
-
-    is(testScope.target.querySelectorAll(".variables-view-element-details.enum").length, 2,
-      "Two enumerable containers should be present in the tree.");
-    is(testScope.target.querySelectorAll(".variables-view-element-details.nonenum").length, 2,
-      "Two non-enumerable containers should be present in the tree.");
-
-    is(testScope.target.querySelector(".variables-view-element-details.enum").childNodes.length, 1,
-      "A new enumerable variable should have been added in the scope.");
-    is(testScope.target.querySelector(".variables-view-element-details.nonenum").childNodes.length, 0,
-      "No new non-enumerable variables should have been added in the scope.");
-
-    let testVar = testScope.get("something");
-    ok(testVar,
-      "The added variable should be accessible from the scope.");
-
-    is(testVar.target.querySelectorAll(".variables-view-element-details.enum").length, 1,
-      "One enumerable container should be present in the variable.");
-    is(testVar.target.querySelectorAll(".variables-view-element-details.nonenum").length, 1,
-      "One non-enumerable container should be present in the variable.");
-    is(testVar.target.querySelector(".variables-view-element-details.enum").childNodes.length, 0,
-      "No enumerable properties should be present in the variable.");
-    is(testVar.target.querySelector(".variables-view-element-details.nonenum").childNodes.length, 0,
-      "No non-enumerable properties should be present in the variable.");
-
-    testVar.addItem("child", {
-      value: {
-        type: "object",
-        class: "Object"
-      },
-      enumerable: true
-    });
-
-    is(testScope.target.querySelectorAll(".variables-view-element-details.enum").length, 3,
-      "Three enumerable containers should be present in the tree.");
-    is(testScope.target.querySelectorAll(".variables-view-element-details.nonenum").length, 3,
-      "Three non-enumerable containers should be present in the tree.");
-
-    is(testVar.target.querySelector(".variables-view-element-details.enum").childNodes.length, 1,
-      "A new enumerable property should have been added in the variable.");
-    is(testVar.target.querySelector(".variables-view-element-details.nonenum").childNodes.length, 0,
-      "No new non-enumerable properties should have been added in the variable.");
-
-    let testChild = testVar.get("child");
-    ok(testChild,
-      "The added property should be accessible from the variable.");
-
-    is(testChild.target.querySelectorAll(".variables-view-element-details.enum").length, 1,
-      "One enumerable container should be present in the property.");
-    is(testChild.target.querySelectorAll(".variables-view-element-details.nonenum").length, 1,
-      "One non-enumerable container should be present in the property.");
-    is(testChild.target.querySelector(".variables-view-element-details.enum").childNodes.length, 0,
-      "No enumerable sub-properties should be present in the property.");
-    is(testChild.target.querySelector(".variables-view-element-details.nonenum").childNodes.length, 0,
-      "No non-enumerable sub-properties should be present in the property.");
-
-    testChild.addItem("grandChild", {
-      value: {
-        type: "object",
-        class: "Object"
-      },
-      enumerable: true
-    });
-
-    is(testScope.target.querySelectorAll(".variables-view-element-details.enum").length, 4,
-      "Four enumerable containers should be present in the tree.");
-    is(testScope.target.querySelectorAll(".variables-view-element-details.nonenum").length, 4,
-      "Four non-enumerable containers should be present in the tree.");
-
-    is(testChild.target.querySelector(".variables-view-element-details.enum").childNodes.length, 1,
-      "A new enumerable sub-property should have been added in the property.");
-    is(testChild.target.querySelector(".variables-view-element-details.nonenum").childNodes.length, 0,
-      "No new non-enumerable sub-properties should have been added in the property.");
-
-    let testGrandChild = testChild.get("grandChild");
-    ok(testGrandChild,
-      "The added sub-property should be accessible from the property.");
-
-    is(testGrandChild.target.querySelectorAll(".variables-view-element-details.enum").length, 1,
-      "One enumerable container should be present in the property.");
-    is(testGrandChild.target.querySelectorAll(".variables-view-element-details.nonenum").length, 1,
-      "One non-enumerable container should be present in the property.");
-    is(testGrandChild.target.querySelector(".variables-view-element-details.enum").childNodes.length, 0,
-      "No enumerable sub-properties should be present in the property.");
-    is(testGrandChild.target.querySelector(".variables-view-element-details.nonenum").childNodes.length, 0,
-      "No non-enumerable sub-properties should be present in the property.");
-
-    testGrandChild.addItem("granderChild", {
-      value: {
-        type: "object",
-        class: "Object"
-      },
-      enumerable: true
-    });
-
-    is(testScope.target.querySelectorAll(".variables-view-element-details.enum").length, 5,
-      "Five enumerable containers should be present in the tree.");
-    is(testScope.target.querySelectorAll(".variables-view-element-details.nonenum").length, 5,
-      "Five non-enumerable containers should be present in the tree.");
-
-    is(testGrandChild.target.querySelector(".variables-view-element-details.enum").childNodes.length, 1,
-      "A new enumerable variable should have been added in the variable.");
-    is(testGrandChild.target.querySelector(".variables-view-element-details.nonenum").childNodes.length, 0,
-      "No new non-enumerable variables should have been added in the variable.");
-
-    let testGranderChild = testGrandChild.get("granderChild");
-    ok(testGranderChild,
-      "The added sub-property should be accessible from the property.");
-
-    is(testGranderChild.target.querySelectorAll(".variables-view-element-details.enum").length, 1,
-      "One enumerable container should be present in the property.");
-    is(testGranderChild.target.querySelectorAll(".variables-view-element-details.nonenum").length, 1,
-      "One non-enumerable container should be present in the property.");
-    is(testGranderChild.target.querySelector(".variables-view-element-details.enum").childNodes.length, 0,
-      "No enumerable sub-properties should be present in the property.");
-    is(testGranderChild.target.querySelector(".variables-view-element-details.nonenum").childNodes.length, 0,
-      "No non-enumerable sub-properties should be present in the property.");
-
-    closeDebuggerAndFinish(aPanel);
-  });
-}
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-04.js
+++ /dev/null
@@ -1,156 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Tests that grips are correctly applied to variables.
- */
-
-const TAB_URL = EXAMPLE_URL + "doc_recursion-stack.html";
-
-function test() {
-  let options = {
-    source: TAB_URL,
-    line: 1
-  };
-  initDebugger(TAB_URL, options).then(([aTab,, aPanel]) => {
-    let variables = aPanel.panelWin.DebuggerView.Variables;
-    let testScope = variables.addScope("test");
-    let testVar = testScope.addItem("something");
-
-    testVar.setGrip(1.618);
-
-    is(testVar.target.querySelector(".value").getAttribute("value"), "1.618",
-      "The grip information for the variable wasn't set correctly (1).");
-    is(testVar.target.querySelector(".variables-view-element-details.enum").childNodes.length, 0,
-      "Setting the grip alone shouldn't add any new tree nodes (1).");
-    is(testVar.target.querySelector(".variables-view-element-details.nonenum").childNodes.length, 0,
-      "Setting the grip alone shouldn't add any new tree nodes (2).");
-
-    testVar.setGrip({
-      type: "object",
-      class: "Window"
-    });
-
-    is(testVar.target.querySelector(".value").getAttribute("value"), "Window",
-      "The grip information for the variable wasn't set correctly (2).");
-    is(testVar.target.querySelector(".variables-view-element-details.enum").childNodes.length, 0,
-      "Setting the grip alone shouldn't add any new tree nodes (3).");
-    is(testVar.target.querySelector(".variables-view-element-details.nonenum").childNodes.length, 0,
-      "Setting the grip alone shouldn't add any new tree nodes (4).");
-
-    testVar.addItems({
-      helloWorld: {
-        value: "hello world",
-        enumerable: true
-      }
-    });
-
-    is(testVar.target.querySelector(".variables-view-element-details").childNodes.length, 1,
-      "A new detail node should have been added in the variable tree.");
-    is(testVar.get("helloWorld").target.querySelector(".value").getAttribute("value"), "\"hello world\"",
-      "The grip information for the variable wasn't set correctly (3).");
-
-    testVar.addItems({
-      helloWorld: {
-        value: "hello jupiter",
-        enumerable: true
-      }
-    });
-
-    is(testVar.target.querySelector(".variables-view-element-details").childNodes.length, 1,
-      "Shouldn't be able to duplicate nodes added in the variable tree.");
-    is(testVar.get("helloWorld").target.querySelector(".value").getAttribute("value"), "\"hello world\"",
-      "The grip information for the variable wasn't preserved correctly (4).");
-
-    testVar.addItems({
-      someProp0: {
-        value: "random string",
-        enumerable: true
-      },
-      someProp1: {
-        value: "another string",
-        enumerable: true
-      }
-    });
-
-    is(testVar.target.querySelector(".variables-view-element-details").childNodes.length, 3,
-      "Two new detail nodes should have been added in the variable tree.");
-    is(testVar.get("someProp0").target.querySelector(".value").getAttribute("value"), "\"random string\"",
-      "The grip information for the variable wasn't set correctly (5).");
-    is(testVar.get("someProp1").target.querySelector(".value").getAttribute("value"), "\"another string\"",
-      "The grip information for the variable wasn't set correctly (6).");
-
-    testVar.addItems({
-      someProp2: {
-        value: {
-          type: "null"
-        },
-        enumerable: true
-      },
-      someProp3: {
-        value: {
-          type: "undefined"
-        },
-        enumerable: true
-      },
-      someProp4: {
-        value: {
-          type: "object",
-          class: "Object"
-        },
-        enumerable: true
-      }
-    });
-
-    is(testVar.target.querySelector(".variables-view-element-details").childNodes.length, 6,
-      "Three new detail nodes should have been added in the variable tree.");
-    is(testVar.get("someProp2").target.querySelector(".value").getAttribute("value"), "null",
-      "The grip information for the variable wasn't set correctly (7).");
-    is(testVar.get("someProp3").target.querySelector(".value").getAttribute("value"), "undefined",
-      "The grip information for the variable wasn't set correctly (8).");
-    is(testVar.get("someProp4").target.querySelector(".value").getAttribute("value"), "Object",
-      "The grip information for the variable wasn't set correctly (9).");
-
-    let parent = testVar.get("someProp2");
-    let child = parent.addItem("child", {
-      value: {
-        type: "null"
-      }
-    });
-
-    is(variables.getItemForNode(parent.target), parent,
-       "VariablesView should have a record of the parent.");
-    is(variables.getItemForNode(child.target), child,
-       "VariablesView should have a record of the child.");
-    is([...parent].length, 1,
-       "Parent should have one child.");
-
-    parent.remove();
-
-    is(variables.getItemForNode(parent.target), undefined,
-       "VariablesView should not have a record of the parent anymore.");
-    is(parent.target.parentNode, null,
-       "Parent element should not have a parent.");
-    is(variables.getItemForNode(child.target), undefined,
-       "VariablesView should not have a record of the child anymore.");
-    is(child.target.parentNode, null,
-       "Child element should not have a parent.");
-    is([...parent].length, 0,
-       "Parent should have zero children.");
-
-    testScope.remove();
-
-    is([...variables].length, 0,
-       "VariablesView should have been emptied.");
-    is(ChromeUtils.nondeterministicGetWeakMapKeys(variables._itemsByElement).length,
-       0, "VariablesView _itemsByElement map has been emptied.");
-    is(variables._currHierarchy.size, 0,
-       "VariablesView _currHierarchy map has been emptied.");
-    is(variables._list.children.length, 0,
-       "VariablesView element should have no children.");
-
-    closeDebuggerAndFinish(aPanel);
-  });
-}
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-05.js
+++ /dev/null
@@ -1,234 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Tests that grips are correctly applied to variables and properties.
- */
-
-const TAB_URL = EXAMPLE_URL + "doc_recursion-stack.html";
-
-function test() {
-  let options = {
-    source: TAB_URL,
-    line: 1
-  };
-  initDebugger(TAB_URL, options).then(([aTab,, aPanel]) => {
-    let variables = aPanel.panelWin.DebuggerView.Variables;
-
-    let globalScope = variables.addScope("Test-Global");
-    let localScope = variables.addScope("Test-Local");
-
-    ok(globalScope, "The globalScope hasn't been created correctly.");
-    ok(localScope, "The localScope hasn't been created correctly.");
-
-    is(globalScope.target.querySelector(".separator"), null,
-      "No separator string should be created for scopes (1).");
-    is(localScope.target.querySelector(".separator"), null,
-      "No separator string should be created for scopes (2).");
-
-    let windowVar = globalScope.addItem("window");
-    let documentVar = globalScope.addItem("document");
-
-    ok(windowVar, "The windowVar hasn't been created correctly.");
-    ok(documentVar, "The documentVar hasn't been created correctly.");
-
-    ok(windowVar.target.querySelector(".separator").hidden,
-      "No separator string should be shown for variables without a grip (1).");
-    ok(documentVar.target.querySelector(".separator").hidden,
-      "No separator string should be shown for variables without a grip (2).");
-
-    windowVar.setGrip({ type: "object", class: "Window" });
-    documentVar.setGrip({ type: "object", class: "HTMLDocument" });
-
-    is(windowVar.target.querySelector(".separator").hidden, false,
-      "A separator string should now be shown after setting the grip (1).");
-    is(documentVar.target.querySelector(".separator").hidden, false,
-      "A separator string should now be shown after setting the grip (2).");
-
-    is(windowVar.target.querySelector(".separator").getAttribute("value"), ": ",
-      "The separator string label is correct (1).");
-    is(documentVar.target.querySelector(".separator").getAttribute("value"), ": ",
-      "The separator string label is correct (2).");
-
-    let localVar0 = localScope.addItem("localVar0");
-    let localVar1 = localScope.addItem("localVar1");
-    let localVar2 = localScope.addItem("localVar2");
-    let localVar3 = localScope.addItem("localVar3");
-    let localVar4 = localScope.addItem("localVar4");
-    let localVar5 = localScope.addItem("localVar5");
-
-    let localVar6 = localScope.addItem("localVar6");
-    let localVar7 = localScope.addItem("localVar7");
-    let localVar8 = localScope.addItem("localVar8");
-    let localVar9 = localScope.addItem("localVar9");
-
-    ok(localVar0, "The localVar0 hasn't been created correctly.");
-    ok(localVar1, "The localVar1 hasn't been created correctly.");
-    ok(localVar2, "The localVar2 hasn't been created correctly.");
-    ok(localVar3, "The localVar3 hasn't been created correctly.");
-    ok(localVar4, "The localVar4 hasn't been created correctly.");
-    ok(localVar5, "The localVar5 hasn't been created correctly.");
-    ok(localVar6, "The localVar6 hasn't been created correctly.");
-    ok(localVar7, "The localVar7 hasn't been created correctly.");
-    ok(localVar8, "The localVar8 hasn't been created correctly.");
-    ok(localVar9, "The localVar9 hasn't been created correctly.");
-
-    localVar0.setGrip(42);
-    localVar1.setGrip(true);
-    localVar2.setGrip("nasu");
-
-    localVar3.setGrip({ type: "undefined" });
-    localVar4.setGrip({ type: "null" });
-    localVar5.setGrip({ type: "object", class: "Object" });
-    localVar6.setGrip({ type: "Infinity" });
-    localVar7.setGrip({ type: "-Infinity" });
-    localVar8.setGrip({ type: "NaN" });
-    localVar9.setGrip({ type: "-0" });
-
-    localVar5.addItems({
-      someProp0: { value: 42, enumerable: true },
-      someProp1: { value: true, enumerable: true },
-      someProp2: { value: "nasu", enumerable: true },
-      someProp3: { value: { type: "undefined" }, enumerable: true },
-      someProp4: { value: { type: "null" }, enumerable: true },
-      someProp5: { value: { type: "object", class: "Object" }, enumerable: true },
-      someProp6: { value: { type: "Infinity" }, enumerable: true },
-      someProp7: { value: { type: "-Infinity" }, enumerable: true },
-      someProp8: { value: { type: "NaN" }, enumerable: true },
-      someProp9: { value: { type: "-0" }, enumerable: true },
-      someUndefined: {
-        get: { type: "undefined" },
-        set: { type: "undefined" },
-        enumerable: true
-      },
-      someAccessor: {
-        get: { type: "object", class: "Function" },
-        set: { type: "undefined" },
-        enumerable: true
-      }
-    });
-
-    localVar5.get("someProp5").addItems({
-      someProp0: { value: 42, enumerable: true },
-      someProp1: { value: true, enumerable: true },
-      someProp2: { value: "nasu", enumerable: true },
-      someProp3: { value: { type: "undefined" }, enumerable: true },
-      someProp4: { value: { type: "null" }, enumerable: true },
-      someProp5: { value: { type: "object", class: "Object" }, enumerable: true },
-      someProp6: { value: { type: "Infinity" }, enumerable: true },
-      someProp7: { value: { type: "-Infinity" }, enumerable: true },
-      someProp8: { value: { type: "NaN" }, enumerable: true },
-      someProp9: { value: { type: "-0" }, enumerable: true },
-      someUndefined: {
-        get: { type: "undefined" },
-        set: { type: "undefined" },
-        enumerable: true
-      },
-      someAccessor: {
-        get: { type: "object", class: "Function" },
-        set: { type: "undefined" },
-        enumerable: true
-      }
-    });
-
-    is(globalScope.target.querySelector(".enum").childNodes.length, 0,
-      "The globalScope doesn't contain all the created enumerable variable elements.");
-    is(globalScope.target.querySelector(".nonenum").childNodes.length, 2,
-      "The globalScope doesn't contain all the created non-enumerable variable elements.");
-
-    is(localScope.target.querySelector(".enum").childNodes.length, 0,
-      "The localScope doesn't contain all the created enumerable variable elements.");
-    is(localScope.target.querySelector(".nonenum").childNodes.length, 10,
-      "The localScope doesn't contain all the created non-enumerable variable elements.");
-
-    is(localVar5.target.querySelector(".enum").childNodes.length, 12,
-      "The localVar5 doesn't contain all the created enumerable properties.");
-    is(localVar5.target.querySelector(".nonenum").childNodes.length, 0,
-      "The localVar5 doesn't contain all the created non-enumerable properties.");
-
-    is(localVar5.get("someProp5").target.querySelector(".enum").childNodes.length, 12,
-      "The localVar5.someProp5 doesn't contain all the created enumerable properties.");
-    is(localVar5.get("someProp5").target.querySelector(".nonenum").childNodes.length, 0,
-      "The localVar5.someProp5 doesn't contain all the created non-enumerable properties.");
-
-    is(windowVar.target.querySelector(".value").getAttribute("value"), "Window",
-      "The grip information for the windowVar wasn't set correctly.");
-    is(documentVar.target.querySelector(".value").getAttribute("value"), "HTMLDocument",
-      "The grip information for the documentVar wasn't set correctly.");
-
-    is(localVar0.target.querySelector(".value").getAttribute("value"), "42",
-      "The grip information for the localVar0 wasn't set correctly.");
-    is(localVar1.target.querySelector(".value").getAttribute("value"), "true",
-      "The grip information for the localVar1 wasn't set correctly.");
-    is(localVar2.target.querySelector(".value").getAttribute("value"), "\"nasu\"",
-      "The grip information for the localVar2 wasn't set correctly.");
-    is(localVar3.target.querySelector(".value").getAttribute("value"), "undefined",
-      "The grip information for the localVar3 wasn't set correctly.");
-    is(localVar4.target.querySelector(".value").getAttribute("value"), "null",
-      "The grip information for the localVar4 wasn't set correctly.");
-    is(localVar5.target.querySelector(".value").getAttribute("value"), "Object",
-      "The grip information for the localVar5 wasn't set correctly.");
-    is(localVar6.target.querySelector(".value").getAttribute("value"), "Infinity",
-      "The grip information for the localVar6 wasn't set correctly.");
-    is(localVar7.target.querySelector(".value").getAttribute("value"), "-Infinity",
-      "The grip information for the localVar7 wasn't set correctly.");
-    is(localVar8.target.querySelector(".value").getAttribute("value"), "NaN",
-      "The grip information for the localVar8 wasn't set correctly.");
-    is(localVar9.target.querySelector(".value").getAttribute("value"), "-0",
-      "The grip information for the localVar9 wasn't set correctly.");
-
-    is(localVar5.get("someProp0").target.querySelector(".value").getAttribute("value"), "42",
-      "The grip information for the someProp0 wasn't set correctly.");
-    is(localVar5.get("someProp1").target.querySelector(".value").getAttribute("value"), "true",
-      "The grip information for the someProp1 wasn't set correctly.");
-    is(localVar5.get("someProp2").target.querySelector(".value").getAttribute("value"), "\"nasu\"",
-      "The grip information for the someProp2 wasn't set correctly.");
-    is(localVar5.get("someProp3").target.querySelector(".value").getAttribute("value"), "undefined",
-      "The grip information for the someProp3 wasn't set correctly.");
-    is(localVar5.get("someProp4").target.querySelector(".value").getAttribute("value"), "null",
-      "The grip information for the someProp4 wasn't set correctly.");
-    is(localVar5.get("someProp5").target.querySelector(".value").getAttribute("value"), "Object",
-      "The grip information for the someProp5 wasn't set correctly.");
-    is(localVar5.get("someProp6").target.querySelector(".value").getAttribute("value"), "Infinity",
-      "The grip information for the someProp6 wasn't set correctly.");
-    is(localVar5.get("someProp7").target.querySelector(".value").getAttribute("value"), "-Infinity",
-      "The grip information for the someProp7 wasn't set correctly.");
-    is(localVar5.get("someProp8").target.querySelector(".value").getAttribute("value"), "NaN",
-      "The grip information for the someProp8 wasn't set correctly.");
-    is(localVar5.get("someProp9").target.querySelector(".value").getAttribute("value"), "-0",
-      "The grip information for the someProp9 wasn't set correctly.");
-    is(localVar5.get("someUndefined").target.querySelector(".value").getAttribute("value"), "",
-      "The grip information for the someUndefined wasn't set correctly.");
-    is(localVar5.get("someAccessor").target.querySelector(".value").getAttribute("value"), "",
-      "The grip information for the someAccessor wasn't set correctly.");
-
-    is(localVar5.get("someProp5").get("someProp0").target.querySelector(".value").getAttribute("value"), "42",
-      "The grip information for the sub-someProp0 wasn't set correctly.");
-    is(localVar5.get("someProp5").get("someProp1").target.querySelector(".value").getAttribute("value"), "true",
-      "The grip information for the sub-someProp1 wasn't set correctly.");
-    is(localVar5.get("someProp5").get("someProp2").target.querySelector(".value").getAttribute("value"), "\"nasu\"",
-      "The grip information for the sub-someProp2 wasn't set correctly.");
-    is(localVar5.get("someProp5").get("someProp3").target.querySelector(".value").getAttribute("value"), "undefined",
-      "The grip information for the sub-someProp3 wasn't set correctly.");
-    is(localVar5.get("someProp5").get("someProp4").target.querySelector(".value").getAttribute("value"), "null",
-      "The grip information for the sub-someProp4 wasn't set correctly.");
-    is(localVar5.get("someProp5").get("someProp5").target.querySelector(".value").getAttribute("value"), "Object",
-      "The grip information for the sub-someProp5 wasn't set correctly.");
-    is(localVar5.get("someProp5").get("someProp6").target.querySelector(".value").getAttribute("value"), "Infinity",
-      "The grip information for the sub-someProp6 wasn't set correctly.");
-    is(localVar5.get("someProp5").get("someProp7").target.querySelector(".value").getAttribute("value"), "-Infinity",
-      "The grip information for the sub-someProp7 wasn't set correctly.");
-    is(localVar5.get("someProp5").get("someProp8").target.querySelector(".value").getAttribute("value"), "NaN",
-      "The grip information for the sub-someProp8 wasn't set correctly.");
-    is(localVar5.get("someProp5").get("someProp9").target.querySelector(".value").getAttribute("value"), "-0",
-      "The grip information for the sub-someProp9 wasn't set correctly.");
-    is(localVar5.get("someProp5").get("someUndefined").target.querySelector(".value").getAttribute("value"), "",
-      "The grip information for the sub-someUndefined wasn't set correctly.");
-    is(localVar5.get("someProp5").get("someAccessor").target.querySelector(".value").getAttribute("value"), "",
-      "The grip information for the sub-someAccessor wasn't set correctly.");
-
-    closeDebuggerAndFinish(aPanel);
-  });
-}
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-06.js
+++ /dev/null
@@ -1,125 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Test that Promises get their internal state added as psuedo properties.
- */
-
-const TAB_URL = EXAMPLE_URL + "doc_promise.html";
-
-var test = Task.async(function* () {
-  let options = {
-    source: TAB_URL,
-    line: 1
-  };
-  const [tab,, panel] = yield initDebugger(TAB_URL, options);
-
-  const scopes = waitForCaretAndScopes(panel, 21);
-  callInTab(tab, "doPause");
-  yield scopes;
-
-  const variables = panel.panelWin.DebuggerView.Variables;
-  ok(variables, "Should get the variables view.");
-
-  const scope = [...variables][0];
-  ok(scope, "Should get the current function's scope.");
-
-  const promiseVariables = [...scope].filter(([name]) =>
-    ["p", "f", "r"].includes(name));
-
-  is(promiseVariables.length, 3,
-     "Should have our 3 promise variables: p, f, r");
-
-  for (let [name, item] of promiseVariables) {
-    info("Expanding variable '" + name + "'");
-    let expanded = once(variables, "fetched");
-    item.expand();
-    yield expanded;
-
-    let foundState = false;
-    switch (name) {
-      case "p":
-        for (let [property, { value }] of item) {
-          if (property !== "<state>") {
-            isnot(property, "<value>",
-                  "A pending promise shouldn't have a value");
-            isnot(property, "<reason>",
-                  "A pending promise shouldn't have a reason");
-            continue;
-          }
-
-          foundState = true;
-          is(value, "pending", "The state should be pending.");
-        }
-        ok(foundState, "We should have found the <state> property.");
-        break;
-
-      case "f":
-        let foundValue = false;
-        for (let [property, value] of item) {
-          if (property === "<state>") {
-            foundState = true;
-            is(value.value, "fulfilled", "The state should be fulfilled.");
-          } else if (property === "<value>") {
-            foundValue = true;
-
-            let expanded = once(variables, "fetched");
-            value.expand();
-            yield expanded;
-
-            let expectedProps = new Map([["a", 1], ["b", 2], ["c", 3]]);
-            for (let [prop, val] of value) {
-              if (prop === "__proto__") {
-                continue;
-              }
-              ok(expectedProps.has(prop), "The property should be expected.");
-              is(val.value, expectedProps.get(prop), "The property value should be correct.");
-              expectedProps.delete(prop);
-            }
-            is(Object.keys(expectedProps).length, 0,
-               "Should have found all of the expected properties.");
-          } else {
-            isnot(property, "<reason>",
-                  "A fulfilled promise shouldn't have a reason");
-          }
-        }
-        ok(foundState, "We should have found the <state> property.");
-        ok(foundValue, "We should have found the <value> property.");
-        break;
-
-      case "r":
-        let foundReason = false;
-        for (let [property, value] of item) {
-          if (property === "<state>") {
-            foundState = true;
-            is(value.value, "rejected", "The state should be rejected.");
-          } else if (property === "<reason>") {
-            foundReason = true;
-
-            let expanded = once(variables, "fetched");
-            value.expand();
-            yield expanded;
-
-            let foundMessage = false;
-            for (let [prop, val] of value) {
-              if (prop !== "message") {
-                continue;
-              }
-              foundMessage = true;
-              is(val.value, "uh oh", "Should have the correct error message.");
-            }
-            ok(foundMessage, "Should have found the error's message");
-          } else {
-            isnot(property, "<value>",
-                  "A rejected promise shouldn't have a value");
-          }
-        }
-        ok(foundState, "We should have found the <state> property.");
-        break;
-    }
-  }
-
-  resumeDebuggerThenCloseAndFinish(panel);
-});
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-07.js
+++ /dev/null
@@ -1,69 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Test that proxy objects get their internal state added as pseudo properties.
- */
-
-const TAB_URL = EXAMPLE_URL + "doc_proxy.html";
-
-var test = Task.async(function* () {
-  let options = {
-    source: TAB_URL,
-    line: 1
-  };
-  var dbg = initDebugger(TAB_URL, options);
-  const [tab,, panel] = yield dbg;
-  const debuggerLineNumber = 34;
-  const scopes = waitForCaretAndScopes(panel, debuggerLineNumber);
-  callInTab(tab, "doPause");
-  yield scopes;
-
-  const variables = panel.panelWin.DebuggerView.Variables;
-  ok(variables, "Should get the variables view.");
-
-  const scope = [...variables][0];
-  ok(scope, "Should get the current function's scope.");
-
-  let proxy;
-  for (let [name, value] of scope) {
-    if (name === "proxy") {
-      proxy = value;
-    }
-  }
-  ok(proxy, "Should have found the proxy variable");
-
-  info("Expanding variable 'proxy'");
-  let expanded = once(variables, "fetched");
-  proxy.expand();
-  yield expanded;
-
-  let foundTarget = false;
-  let foundHandler = false;
-  for (let [property, data] of proxy) {
-    info("Expanding property '" + property + "'");
-    let expanded = once(variables, "fetched");
-    data.expand();
-    yield expanded;
-    if (property === "<target>") {
-      for(let [subprop, subdata] of data) if(subprop === "name") {
-        is(subdata.value, "target", "The value of '<target>' should be the [[ProxyTarget]]");
-        foundTarget = true;
-      }
-    } else {
-      is(property, "<handler>", "There shouldn't be properties other than <target> and <handler>");
-      for (let [subprop, subdata] of data) {
-        if(subprop === "name") {
-          is(subdata.value, "handler", "The value of '<handler>' should be the [[ProxyHandler]]");
-          foundHandler = true;
-        }
-      }
-    }
-  }
-  ok(foundTarget, "Should have found the '<target>' property containing the [[ProxyTarget]]");
-  ok(foundHandler, "Should have found the '<handler>' property containing the [[ProxyHandler]]");
-
-  resumeDebuggerThenCloseAndFinish(panel);
-});
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-08.js
+++ /dev/null
@@ -1,61 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Test that property values are not missing when the property names only contain whitespace.
- */
-
-const TAB_URL = EXAMPLE_URL + "doc_whitespace-property-names.html";
-
-var test = Task.async(function* () {
-  let options = {
-    source: TAB_URL,
-    line: 1
-  };
-  var dbg = initDebugger(TAB_URL, options);
-  const [tab,, panel] = yield dbg;
-  const debuggerLineNumber = 26;
-  const scopes = waitForCaretAndScopes(panel, debuggerLineNumber);
-  callInTab(tab, "doPause");
-  yield scopes;
-
-  const variables = panel.panelWin.DebuggerView.Variables;
-  ok(variables, "Should get the variables view.");
-
-  const scope = [...variables][0];
-  ok(scope, "Should get the current function's scope.");
-
-  let obj;
-  for (let [name, value] of scope) {
-    if (name === "obj") {
-      obj = value;
-    }
-  }
-  ok(obj, "Should have found the 'obj' variable");
-
-  info("Expanding variable 'obj'");
-  let expanded = once(variables, "fetched");
-  obj.expand();
-  yield expanded;
-
-  let values = ["", " ", "\r", "\n", "\t", "\f", "\uFEFF", "\xA0", "\u2028", "\u2029"];
-  let count = values.length;
-
-  for (let [property, value] of obj) {
-    let index = values.indexOf(property);
-    if (index >= 0) {
-      --count;
-      is(value._nameString, property,
-         "The _nameString is different than the property name");
-      is(value._valueString, index + "",
-         "The _valueString is different than the stringified value");
-      is(value._valueLabel.getAttribute("value"), index + "",
-         "The _valueLabel value is different than the stringified value");
-    }
-  }
-  is(count, 0, "There are " + count + " missing properties");
-
-  resumeDebuggerThenCloseAndFinish(panel);
-});
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-accessibility.js
+++ /dev/null
@@ -1,557 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Make sure that the variables view is keyboard accessible.
- */
-
-var gTab, gPanel, gDebugger;
-var gVariablesView;
-
-function test() {
-  initDebugger().then(([aTab,, aPanel]) => {
-    gTab = aTab;
-    gPanel = aPanel;
-    gDebugger = gPanel.panelWin;
-    gVariablesView = gDebugger.DebuggerView.Variables;
-
-    performTest().catch(aError => {
-      ok(false, "Got an error: " + aError.message + "\n" + aError.stack);
-    });
-  });
-}
-
-function performTest() {
-  let arr = [
-    42,
-    true,
-    "nasu",
-    undefined,
-    null,
-    [0, 1, 2],
-    { prop1: 9, prop2: 8 }
-  ];
-
-  let obj = {
-    p0: 42,
-    p1: true,
-    p2: "nasu",
-    p3: undefined,
-    p4: null,
-    p5: [3, 4, 5],
-    p6: { prop1: 7, prop2: 6 },
-    get p7() { return arr; },
-    set p8(value) { arr[0] = value; }
-  };
-
-  let test = {
-    someProp0: 42,
-    someProp1: true,
-    someProp2: "nasu",
-    someProp3: undefined,
-    someProp4: null,
-    someProp5: arr,
-    someProp6: obj,
-    get someProp7() { return arr; },
-    set someProp7(value) { arr[0] = value; }
-  };
-
-  gVariablesView.eval = function () {};
-  gVariablesView.switch = function () {};
-  gVariablesView.delete = function () {};
-  gVariablesView.rawObject = test;
-  gVariablesView.scrollPageSize = 5;
-
-  return Task.spawn(function* () {
-    yield waitForTick();
-
-    // Part 0: Test generic focus methods on the variables view.
-
-    gVariablesView.focusFirstVisibleItem();
-    is(gVariablesView.getFocusedItem().name, "someProp0",
-      "The 'someProp0' item should be focused.");
-
-    gVariablesView.focusNextItem();
-    is(gVariablesView.getFocusedItem().name, "someProp1",
-      "The 'someProp1' item should be focused.");
-
-    gVariablesView.focusPrevItem();
-    is(gVariablesView.getFocusedItem().name, "someProp0",
-      "The 'someProp0' item should be focused.");
-
-    // Part 1: Make sure that UP/DOWN keys don't scroll the variables view.
-
-    yield synthesizeKeyAndWaitForTick("KEY_ArrowDown");
-    is(gVariablesView._parent.scrollTop, 0,
-      "The 'variables' view shouldn't scroll when pressing the DOWN key.");
-
-    yield synthesizeKeyAndWaitForTick("KEY_ArrowUp");
-    is(gVariablesView._parent.scrollTop, 0,
-      "The 'variables' view shouldn't scroll when pressing the UP key.");
-
-    // Part 2: Make sure that RETURN/ESCAPE toggle input elements.
-
-    yield synthesizeKeyAndWaitForElement("KEY_Enter", {}, ".element-value-input", true);
-    yield synthesizeKeyAndWaitForElement("KEY_Escape", {}, ".element-value-input", false);
-    yield synthesizeKeyAndWaitForElement("KEY_Enter", {shiftKey: true}, ".element-name-input", true);
-    yield synthesizeKeyAndWaitForElement("KEY_Escape", {}, ".element-name-input", false);
-
-    // Part 3: Test simple navigation.
-
-    EventUtils.synthesizeKey("KEY_ArrowDown", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "someProp1",
-      "The 'someProp1' item should be focused.");
-
-    EventUtils.synthesizeKey("KEY_ArrowUp", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "someProp0",
-      "The 'someProp0' item should be focused.");
-
-    EventUtils.synthesizeKey("KEY_PageDown", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "someProp5",
-      "The 'someProp5' item should be focused.");
-
-    EventUtils.synthesizeKey("KEY_PageUp", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "someProp0",
-      "The 'someProp0' item should be focused.");
-
-    EventUtils.synthesizeKey("KEY_End", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "__proto__",
-      "The '__proto__' item should be focused.");
-
-    EventUtils.synthesizeKey("KEY_Home", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "someProp0",
-      "The 'someProp0' item should be focused.");
-
-    // Part 4: Test if pressing the same navigation key twice works as expected.
-
-    EventUtils.synthesizeKey("KEY_ArrowDown", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "someProp1",
-      "The 'someProp1' item should be focused.");
-
-    EventUtils.synthesizeKey("KEY_ArrowDown", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "someProp2",
-      "The 'someProp2' item should be focused.");
-
-    EventUtils.synthesizeKey("KEY_ArrowUp", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "someProp1",
-      "The 'someProp1' item should be focused.");
-
-    EventUtils.synthesizeKey("KEY_ArrowUp", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "someProp0",
-      "The 'someProp0' item should be focused.");
-
-    EventUtils.synthesizeKey("KEY_PageDown", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "someProp5",
-      "The 'someProp5' item should be focused.");
-
-    EventUtils.synthesizeKey("KEY_PageDown", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "__proto__",
-      "The '__proto__' item should be focused.");
-
-    EventUtils.synthesizeKey("KEY_PageUp", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "someProp5",
-      "The 'someProp5' item should be focused.");
-
-    EventUtils.synthesizeKey("KEY_PageUp", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "someProp0",
-      "The 'someProp0' item should be focused.");
-
-    // Part 5: Test that HOME/PAGE_UP/PAGE_DOWN are symmetrical.
-
-    EventUtils.synthesizeKey("KEY_Home", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "someProp0",
-      "The 'someProp0' item should be focused.");
-
-    EventUtils.synthesizeKey("KEY_Home", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "someProp0",
-      "The 'someProp0' item should be focused.");
-
-    EventUtils.synthesizeKey("KEY_PageUp", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "someProp0",
-      "The 'someProp0' item should be focused.");
-
-    EventUtils.synthesizeKey("KEY_Home", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "someProp0",
-      "The 'someProp0' item should be focused.");
-
-    EventUtils.synthesizeKey("KEY_End", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "__proto__",
-      "The '__proto__' item should be focused.");
-
-    EventUtils.synthesizeKey("KEY_End", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "__proto__",
-      "The '__proto__' item should be focused.");
-
-    EventUtils.synthesizeKey("KEY_PageDown", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "__proto__",
-      "The '__proto__' item should be focused.");
-
-    EventUtils.synthesizeKey("KEY_End", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "__proto__",
-      "The '__proto__' item should be focused.");
-
-    // Part 6: Test that focus doesn't leave the variables view.
-
-    EventUtils.synthesizeKey("KEY_PageUp", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "someProp5",
-      "The 'someProp5' item should be focused.");
-
-    EventUtils.synthesizeKey("KEY_PageUp", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "someProp0",
-      "The 'someProp0' item should be focused.");
-
-    EventUtils.synthesizeKey("KEY_ArrowUp", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "someProp0",
-      "The 'someProp0' item should be focused.");
-
-    EventUtils.synthesizeKey("KEY_ArrowUp", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "someProp0",
-      "The 'someProp0' item should be focused.");
-
-    EventUtils.synthesizeKey("KEY_PageDown", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "someProp5",
-      "The 'someProp5' item should be focused.");
-
-    EventUtils.synthesizeKey("KEY_PageDown", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "__proto__",
-      "The '__proto__' item should be focused.");
-
-    EventUtils.synthesizeKey("KEY_PageDown", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "__proto__",
-      "The '__proto__' item should be focused.");
-
-    EventUtils.synthesizeKey("KEY_PageDown", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "__proto__",
-      "The '__proto__' item should be focused.");
-
-    // Part 7: Test that random offsets don't occur in tandem with HOME/END.
-
-    EventUtils.synthesizeKey("KEY_Home", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "someProp0",
-      "The 'someProp0' item should be focused.");
-
-    EventUtils.synthesizeKey("KEY_ArrowDown", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "someProp1",
-      "The 'someProp1' item should be focused.");
-
-    EventUtils.synthesizeKey("KEY_End", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "__proto__",
-      "The '__proto__' item should be focused.");
-
-    EventUtils.synthesizeKey("KEY_ArrowDown", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "__proto__",
-      "The '__proto__' item should be focused.");
-
-    // Part 8: Test that the RIGHT key expands elements as intended.
-
-    EventUtils.synthesizeKey("KEY_PageUp", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "someProp5",
-      "The 'someProp5' item should be focused.");
-    is(gVariablesView.getFocusedItem().expanded, false,
-      "The 'someProp5' item should not be expanded yet.");
-
-    yield synthesizeKeyAndWaitForTick("KEY_ArrowRight");
-    is(gVariablesView.getFocusedItem().name, "someProp5",
-      "The 'someProp5' item should be focused.");
-    is(gVariablesView.getFocusedItem().expanded, true,
-      "The 'someProp5' item should now be expanded.");
-    is(gVariablesView.getFocusedItem()._store.size, 9,
-      "There should be 9 properties in the selected variable.");
-    is(gVariablesView.getFocusedItem()._enumItems.length, 7,
-      "There should be 7 enumerable properties in the selected variable.");
-    is(gVariablesView.getFocusedItem()._nonEnumItems.length, 2,
-      "There should be 2 non-enumerable properties in the selected variable.");
-
-    yield waitForChildNodes(gVariablesView.getFocusedItem()._enum, 7);
-    yield waitForChildNodes(gVariablesView.getFocusedItem()._nonenum, 2);
-
-    EventUtils.synthesizeKey("KEY_ArrowRight", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "0",
-      "The '0' item should be focused.");
-
-    EventUtils.synthesizeKey("KEY_ArrowRight", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "0",
-      "The '0' item should still be focused.");
-
-    EventUtils.synthesizeKey("KEY_PageDown", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "5",
-      "The '5' item should be focused.");
-    is(gVariablesView.getFocusedItem().expanded, false,
-      "The '5' item should not be expanded yet.");
-
-    yield synthesizeKeyAndWaitForTick("KEY_ArrowRight");
-    is(gVariablesView.getFocusedItem().name, "5",
-      "The '5' item should be focused.");
-    is(gVariablesView.getFocusedItem().expanded, true,
-      "The '5' item should now be expanded.");
-    is(gVariablesView.getFocusedItem()._store.size, 5,
-      "There should be 5 properties in the selected variable.");
-    is(gVariablesView.getFocusedItem()._enumItems.length, 3,
-      "There should be 3 enumerable properties in the selected variable.");
-    is(gVariablesView.getFocusedItem()._nonEnumItems.length, 2,
-      "There should be 2 non-enumerable properties in the selected variable.");
-
-    yield waitForChildNodes(gVariablesView.getFocusedItem()._enum, 3);
-    yield waitForChildNodes(gVariablesView.getFocusedItem()._nonenum, 2);
-
-    EventUtils.synthesizeKey("KEY_ArrowRight", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "0",
-      "The '0' item should be focused.");
-
-    EventUtils.synthesizeKey("KEY_ArrowRight", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "0",
-      "The '0' item should still be focused.");
-
-    EventUtils.synthesizeKey("KEY_PageDown", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "6",
-      "The '6' item should be focused.");
-    is(gVariablesView.getFocusedItem().expanded, false,
-      "The '6' item should not be expanded yet.");
-
-    yield synthesizeKeyAndWaitForTick("KEY_ArrowRight");
-    is(gVariablesView.getFocusedItem().name, "6",
-      "The '6' item should be focused.");
-    is(gVariablesView.getFocusedItem().expanded, true,
-      "The '6' item should now be expanded.");
-    is(gVariablesView.getFocusedItem()._store.size, 3,
-      "There should be 3 properties in the selected variable.");
-    is(gVariablesView.getFocusedItem()._enumItems.length, 2,
-      "There should be 2 enumerable properties in the selected variable.");
-    is(gVariablesView.getFocusedItem()._nonEnumItems.length, 1,
-      "There should be 1 non-enumerable properties in the selected variable.");
-
-    yield waitForChildNodes(gVariablesView.getFocusedItem()._enum, 2);
-    yield waitForChildNodes(gVariablesView.getFocusedItem()._nonenum, 1);
-
-    EventUtils.synthesizeKey("KEY_ArrowRight", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "prop1",
-      "The 'prop1' item should be focused.");
-
-    EventUtils.synthesizeKey("KEY_ArrowRight", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "prop1",
-      "The 'prop1' item should still be focused.");
-
-    EventUtils.synthesizeKey("KEY_PageDown", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "someProp6",
-      "The 'someProp6' item should be focused.");
-    is(gVariablesView.getFocusedItem().expanded, false,
-      "The 'someProp6' item should not be expanded yet.");
-
-    // Part 9: Test that the RIGHT key collapses elements as intended.
-
-    EventUtils.synthesizeKey("KEY_ArrowLeft", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "someProp6",
-      "The 'someProp6' item should be focused.");
-
-    EventUtils.synthesizeKey("KEY_ArrowUp", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "__proto__",
-      "The '__proto__' item should be focused.");
-
-    EventUtils.synthesizeKey("KEY_ArrowLeft", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "someProp5",
-      "The 'someProp5' item should be focused.");
-    is(gVariablesView.getFocusedItem().expanded, true,
-      "The '6' item should still be expanded.");
-
-    EventUtils.synthesizeKey("KEY_ArrowLeft", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "someProp5",
-      "The 'someProp5' item should still be focused.");
-    is(gVariablesView.getFocusedItem().expanded, false,
-      "The '6' item should still not be expanded anymore.");
-
-    EventUtils.synthesizeKey("KEY_ArrowLeft", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "someProp5",
-      "The 'someProp5' item should still be focused.");
-
-    // Part 9: Test continuous navigation.
-
-    EventUtils.synthesizeKey("KEY_ArrowUp", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "someProp4",
-      "The 'someProp4' item should be focused.");
-
-    EventUtils.synthesizeKey("KEY_ArrowUp", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "someProp3",
-      "The 'someProp3' item should be focused.");
-
-    EventUtils.synthesizeKey("KEY_ArrowUp", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "someProp2",
-      "The 'someProp2' item should be focused.");
-
-    EventUtils.synthesizeKey("KEY_ArrowUp", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "someProp1",
-      "The 'someProp1' item should be focused.");
-
-    EventUtils.synthesizeKey("KEY_ArrowUp", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "someProp0",
-      "The 'someProp0' item should be focused.");
-
-    EventUtils.synthesizeKey("KEY_PageUp", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "someProp0",
-      "The 'someProp0' item should be focused.");
-
-    EventUtils.synthesizeKey("KEY_PageDown", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "someProp5",
-      "The 'someProp5' item should be focused.");
-
-    EventUtils.synthesizeKey("KEY_ArrowDown", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "someProp6",
-      "The 'someProp6' item should be focused.");
-
-    EventUtils.synthesizeKey("KEY_ArrowDown", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "someProp7",
-      "The 'someProp7' item should be focused.");
-
-    EventUtils.synthesizeKey("KEY_ArrowDown", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "get",
-      "The 'get' item should be focused.");
-
-    EventUtils.synthesizeKey("KEY_ArrowDown", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "set",
-      "The 'set' item should be focused.");
-
-    EventUtils.synthesizeKey("KEY_ArrowDown", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "__proto__",
-      "The '__proto__' item should be focused.");
-
-    // Part 10: Test that BACKSPACE deletes items in the variables view.
-
-    EventUtils.synthesizeKey("KEY_Backspace", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "__proto__",
-      "The '__proto__' variable should still be focused.");
-    is(gVariablesView.getFocusedItem().value, "[object Object]",
-      "The '__proto__' variable should not have an empty value.");
-    is(gVariablesView.getFocusedItem().visible, false,
-      "The '__proto__' variable should be hidden.");
-
-    EventUtils.synthesizeKey("KEY_ArrowUp", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "set",
-      "The 'set' item should be focused.");
-    is(gVariablesView.getFocusedItem().value, "[object Object]",
-      "The 'set' item should not have an empty value.");
-    is(gVariablesView.getFocusedItem().visible, true,
-      "The 'set' item should be visible.");
-
-    EventUtils.synthesizeKey("KEY_Backspace", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "set",
-      "The 'set' item should still be focused.");
-    is(gVariablesView.getFocusedItem().value, "[object Object]",
-      "The 'set' item should not have an empty value.");
-    is(gVariablesView.getFocusedItem().visible, true,
-      "The 'set' item should be visible.");
-    is(gVariablesView.getFocusedItem().twisty, false,
-      "The 'set' item should be disabled and have a hidden twisty.");
-
-    EventUtils.synthesizeKey("KEY_ArrowUp", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "get",
-      "The 'get' item should be focused.");
-    is(gVariablesView.getFocusedItem().value, "[object Object]",
-      "The 'get' item should not have an empty value.");
-    is(gVariablesView.getFocusedItem().visible, true,
-      "The 'get' item should be visible.");
-
-    EventUtils.synthesizeKey("KEY_Backspace", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "get",
-      "The 'get' item should still be focused.");
-    is(gVariablesView.getFocusedItem().value, "[object Object]",
-      "The 'get' item should not have an empty value.");
-    is(gVariablesView.getFocusedItem().visible, true,
-      "The 'get' item should be visible.");
-    is(gVariablesView.getFocusedItem().twisty, false,
-      "The 'get' item should be disabled and have a hidden twisty.");
-
-    EventUtils.synthesizeKey("KEY_ArrowUp", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "someProp7",
-      "The 'someProp7' item should be focused.");
-    is(gVariablesView.getFocusedItem().value, undefined,
-      "The 'someProp7' variable should have an empty value.");
-    is(gVariablesView.getFocusedItem().visible, true,
-      "The 'someProp7' variable should be visible.");
-
-    EventUtils.synthesizeKey("KEY_Backspace", {}, gDebugger);
-    is(gVariablesView.getFocusedItem().name, "someProp7",
-      "The 'someProp7' variable should still be focused.");
-    is(gVariablesView.getFocusedItem().value, undefined,
-      "The 'someProp7' variable should have an empty value.");
-    is(gVariablesView.getFocusedItem().visible, false,
-      "The 'someProp7' variable should be hidden.");
-
-    // Part 11: Test that Ctrl-C copies the current item to the system clipboard
-
-    gVariablesView.focusFirstVisibleItem();
-    let copied = promise.defer();
-    let expectedValue = gVariablesView.getFocusedItem().name
-      + gVariablesView.getFocusedItem().separatorStr
-      + gVariablesView.getFocusedItem().value;
-
-    waitForClipboard(expectedValue, function setup() {
-      EventUtils.synthesizeKey("C", { metaKey: true }, gDebugger);
-    }, copied.resolve, copied.reject
-    );
-
-    try {
-      yield copied.promise;
-      ok(true,
-        "Ctrl-C copied the selected item to the clipboard.");
-    } catch (e) {
-      ok(false,
-        "Ctrl-C didn't copy the selected item to the clipboard.");
-    }
-
-    yield closeDebuggerAndFinish(gPanel);
-  });
-}
-
-registerCleanupFunction(function () {
-  gTab = null;
-  gPanel = null;
-  gDebugger = null;
-  gVariablesView = null;
-});
-
-function synthesizeKeyAndWaitForElement(aKey, aModifiers, aSelector, aExistence) {
-  EventUtils.synthesizeKey(aKey, aModifiers, gDebugger);
-  return waitForElement(aSelector, aExistence);
-}
-
-function synthesizeKeyAndWaitForTick(aKey, aModifiers) {
-  EventUtils.synthesizeKey(aKey, aModifiers, gDebugger);
-  return waitForTick();
-}
-
-function waitForElement(aSelector, aExistence) {
-  return waitForPredicate(() => {
-    return !!gVariablesView._list.querySelector(aSelector) == aExistence;
-  });
-}
-
-function waitForChildNodes(aTarget, aCount) {
-  return waitForPredicate(() => {
-    return aTarget.childNodes.length == aCount;
-  });
-}
-
-function waitForPredicate(aPredicate, aInterval = 10) {
-  let deferred = promise.defer();
-
-  // Poll every few milliseconds until the element is retrieved.
-  let count = 0;
-  let intervalID = window.setInterval(() => {
-    // Make sure we don't wait for too long.
-    if (++count > 1000) {
-      deferred.reject("Timed out while polling for the element.");
-      window.clearInterval(intervalID);
-      return;
-    }
-    // Check if the predicate condition is fulfilled.
-    if (!aPredicate()) {
-      return;
-    }
-    // We got the element, it's safe to callback.
-    window.clearInterval(intervalID);
-    deferred.resolve();
-  }, aInterval);
-
-  return deferred.promise;
-}
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-data.js
+++ /dev/null
@@ -1,611 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Make sure that the variables view correctly populates itself
- * when given some raw data.
- */
-
-var gTab, gPanel, gDebugger;
-var gVariablesView, gScope, gVariable;
-
-function test() {
-  initDebugger().then(([aTab,, aPanel]) => {
-    gTab = aTab;
-    gPanel = aPanel;
-    gDebugger = gPanel.panelWin;
-    gVariablesView = gDebugger.DebuggerView.Variables;
-
-    performTest();
-  });
-}
-
-function performTest() {
-  let arr = [
-    42,
-    true,
-    "nasu",
-    undefined,
-    null,
-    [0, 1, 2],
-    { prop1: 9, prop2: 8 }
-  ];
-
-  let obj = {
-    p0: 42,
-    p1: true,
-    p2: "nasu",
-    p3: undefined,
-    p4: null,
-    p5: [3, 4, 5],
-    p6: { prop1: 7, prop2: 6 },
-    get p7() { return arr; },
-    set p8(value) { arr[0] = value; }
-  };
-
-  let test = {
-    someProp0: 42,
-    someProp1: true,
-    someProp2: "nasu",
-    someProp3: undefined,
-    someProp4: null,
-    someProp5: arr,
-    someProp6: obj,
-    get someProp7() { return arr; },
-    set someProp7(value) { arr[0] = value; }
-  };
-
-  gVariablesView.eval = function () {};
-  gVariablesView.switch = function () {};
-  gVariablesView.delete = function () {};
-  gVariablesView.new = function () {};
-  gVariablesView.rawObject = test;
-
-  testHierarchy();
-  testHeader();
-  testFirstLevelContents();
-  testSecondLevelContents();
-  testThirdLevelContents();
-  testOriginalRawDataIntegrity(arr, obj);
-
-  let fooScope = gVariablesView.addScope("foo");
-  let anonymousVar = fooScope.addItem();
-
-  let anonymousScope = gVariablesView.addScope();
-  let barVar = anonymousScope.addItem("bar");
-  let bazProperty = barVar.addItem("baz");
-
-  testAnonymousHeaders(fooScope, anonymousVar, anonymousScope, barVar, bazProperty);
-  testPropertyInheritance(fooScope, anonymousVar, anonymousScope, barVar, bazProperty);
-
-  testClearHierarchy();
-  closeDebuggerAndFinish(gPanel);
-}
-
-function testHierarchy() {
-  is(gVariablesView._currHierarchy.size, 13,
-    "There should be 1 scope, 1 var, 1 proto, 8 props, 1 getter and 1 setter.");
-
-  gScope = gVariablesView._currHierarchy.get("");
-  gVariable = gVariablesView._currHierarchy.get("[]");
-
-  is(gVariablesView._store.length, 1,
-    "There should be only one scope in the view.");
-  is(gScope._store.size, 1,
-    "There should be only one variable in the scope.");
-  is(gVariable._store.size, 9,
-    "There should be 1 __proto__ and 8 properties in the variable.");
-}
-
-function testHeader() {
-  is(gScope.header, false,
-    "The scope title header should be hidden.");
-  is(gVariable.header, false,
-    "The variable title header should be hidden.");
-
-  gScope.showHeader();
-  gVariable.showHeader();
-
-  is(gScope.header, false,
-    "The scope title header should still not be visible.");
-  is(gVariable.header, false,
-    "The variable title header should still not be visible.");
-
-  gScope.hideHeader();
-  gVariable.hideHeader();
-
-  is(gScope.header, false,
-    "The scope title header should now still be hidden.");
-  is(gVariable.header, false,
-    "The variable title header should now still be hidden.");
-}
-
-function testFirstLevelContents() {
-  let someProp0 = gVariable.get("someProp0");
-  let someProp1 = gVariable.get("someProp1");
-  let someProp2 = gVariable.get("someProp2");
-  let someProp3 = gVariable.get("someProp3");
-  let someProp4 = gVariable.get("someProp4");
-  let someProp5 = gVariable.get("someProp5");
-  let someProp6 = gVariable.get("someProp6");
-  let someProp7 = gVariable.get("someProp7");
-  let __proto__ = gVariable.get("__proto__");
-
-  is(someProp0.visible, true, "The first property visible state is correct.");
-  is(someProp1.visible, true, "The second property visible state is correct.");
-  is(someProp2.visible, true, "The third property visible state is correct.");
-  is(someProp3.visible, true, "The fourth property visible state is correct.");
-  is(someProp4.visible, true, "The fifth property visible state is correct.");
-  is(someProp5.visible, true, "The sixth property visible state is correct.");
-  is(someProp6.visible, true, "The seventh property visible state is correct.");
-  is(someProp7.visible, true, "The eight property visible state is correct.");
-  is(__proto__.visible, true, "The __proto__ property visible state is correct.");
-
-  is(someProp0.expanded, false, "The first property expanded state is correct.");
-  is(someProp1.expanded, false, "The second property expanded state is correct.");
-  is(someProp2.expanded, false, "The third property expanded state is correct.");
-  is(someProp3.expanded, false, "The fourth property expanded state is correct.");
-  is(someProp4.expanded, false, "The fifth property expanded state is correct.");
-  is(someProp5.expanded, false, "The sixth property expanded state is correct.");
-  is(someProp6.expanded, false, "The seventh property expanded state is correct.");
-  is(someProp7.expanded, true, "The eight property expanded state is correct.");
-  is(__proto__.expanded, false, "The __proto__ property expanded state is correct.");
-
-  is(someProp0.header, true, "The first property header state is correct.");
-  is(someProp1.header, true, "The second property header state is correct.");
-  is(someProp2.header, true, "The third property header state is correct.");
-  is(someProp3.header, true, "The fourth property header state is correct.");
-  is(someProp4.header, true, "The fifth property header state is correct.");
-  is(someProp5.header, true, "The sixth property header state is correct.");
-  is(someProp6.header, true, "The seventh property header state is correct.");
-  is(someProp7.header, true, "The eight property header state is correct.");
-  is(__proto__.header, true, "The __proto__ property header state is correct.");
-
-  is(someProp0.twisty, false, "The first property twisty state is correct.");
-  is(someProp1.twisty, false, "The second property twisty state is correct.");
-  is(someProp2.twisty, false, "The third property twisty state is correct.");
-  is(someProp3.twisty, false, "The fourth property twisty state is correct.");
-  is(someProp4.twisty, false, "The fifth property twisty state is correct.");
-  is(someProp5.twisty, true, "The sixth property twisty state is correct.");
-  is(someProp6.twisty, true, "The seventh property twisty state is correct.");
-  is(someProp7.twisty, true, "The eight property twisty state is correct.");
-  is(__proto__.twisty, true, "The __proto__ property twisty state is correct.");
-
-  is(someProp0.name, "someProp0", "The first property name is correct.");
-  is(someProp1.name, "someProp1", "The second property name is correct.");
-  is(someProp2.name, "someProp2", "The third property name is correct.");
-  is(someProp3.name, "someProp3", "The fourth property name is correct.");
-  is(someProp4.name, "someProp4", "The fifth property name is correct.");
-  is(someProp5.name, "someProp5", "The sixth property name is correct.");
-  is(someProp6.name, "someProp6", "The seventh property name is correct.");
-  is(someProp7.name, "someProp7", "The eight property name is correct.");
-  is(__proto__.name, "__proto__", "The __proto__ property name is correct.");
-
-  is(someProp0.value, 42, "The first property value is correct.");
-  is(someProp1.value, true, "The second property value is correct.");
-  is(someProp2.value, "nasu", "The third property value is correct.");
-  is(someProp3.value.type, "undefined", "The fourth property value is correct.");
-  is(someProp4.value.type, "null", "The fifth property value is correct.");
-  is(someProp5.value.type, "object", "The sixth property value type is correct.");
-  is(someProp5.value.class, "Array", "The sixth property value class is correct.");
-  is(someProp6.value.type, "object", "The seventh property value type is correct.");
-  is(someProp6.value.class, "Object", "The seventh property value class is correct.");
-  is(someProp7.value, null, "The eight property value is correct.");
-  isnot(someProp7.getter, null, "The eight property getter is correct.");
-  isnot(someProp7.setter, null, "The eight property setter is correct.");
-  is(someProp7.getter.type, "object", "The eight property getter type is correct.");
-  is(someProp7.getter.class, "Function", "The eight property getter class is correct.");
-  is(someProp7.setter.type, "object", "The eight property setter type is correct.");
-  is(someProp7.setter.class, "Function", "The eight property setter class is correct.");
-  is(__proto__.value.type, "object", "The __proto__ property value type is correct.");
-  is(__proto__.value.class, "Object", "The __proto__ property value class is correct.");
-
-  someProp0.expand();
-  someProp1.expand();
-  someProp2.expand();
-  someProp3.expand();
-  someProp4.expand();
-  someProp7.expand();
-
-  ok(!someProp0.get("__proto__"), "Number primitives should not have a prototype");
-  ok(!someProp1.get("__proto__"), "Boolean primitives should not have a prototype");
-  ok(!someProp2.get("__proto__"), "String literals should not have a prototype");
-  ok(!someProp3.get("__proto__"), "Undefined values should not have a prototype");
-  ok(!someProp4.get("__proto__"), "Null values should not have a prototype");
-  ok(!someProp7.get("__proto__"), "Getter properties should not have a prototype");
-}
-
-function testSecondLevelContents() {
-  let someProp5 = gVariable.get("someProp5");
-  let someProp6 = gVariable.get("someProp6");
-
-  is(someProp5._store.size, 0, "No properties should be in someProp5 before expanding");
-  someProp5.expand();
-  is(someProp5._store.size, 9, "Some properties should be in someProp5 before expanding");
-
-  let arrayItem0 = someProp5.get("0");
-  let arrayItem1 = someProp5.get("1");
-  let arrayItem2 = someProp5.get("2");
-  let arrayItem3 = someProp5.get("3");
-  let arrayItem4 = someProp5.get("4");
-  let arrayItem5 = someProp5.get("5");
-  let arrayItem6 = someProp5.get("6");
-  let __proto__ = someProp5.get("__proto__");
-
-  is(arrayItem0.visible, true, "The first array item visible state is correct.");
-  is(arrayItem1.visible, true, "The second array item visible state is correct.");
-  is(arrayItem2.visible, true, "The third array item visible state is correct.");
-  is(arrayItem3.visible, true, "The fourth array item visible state is correct.");
-  is(arrayItem4.visible, true, "The fifth array item visible state is correct.");
-  is(arrayItem5.visible, true, "The sixth array item visible state is correct.");
-  is(arrayItem6.visible, true, "The seventh array item visible state is correct.");
-  is(__proto__.visible, true, "The __proto__ property visible state is correct.");
-
-  is(arrayItem0.expanded, false, "The first array item expanded state is correct.");
-  is(arrayItem1.expanded, false, "The second array item expanded state is correct.");
-  is(arrayItem2.expanded, false, "The third array item expanded state is correct.");
-  is(arrayItem3.expanded, false, "The fourth array item expanded state is correct.");
-  is(arrayItem4.expanded, false, "The fifth array item expanded state is correct.");
-  is(arrayItem5.expanded, false, "The sixth array item expanded state is correct.");
-  is(arrayItem6.expanded, false, "The seventh array item expanded state is correct.");
-  is(__proto__.expanded, false, "The __proto__ property expanded state is correct.");
-
-  is(arrayItem0.header, true, "The first array item header state is correct.");
-  is(arrayItem1.header, true, "The second array item header state is correct.");
-  is(arrayItem2.header, true, "The third array item header state is correct.");
-  is(arrayItem3.header, true, "The fourth array item header state is correct.");
-  is(arrayItem4.header, true, "The fifth array item header state is correct.");
-  is(arrayItem5.header, true, "The sixth array item header state is correct.");
-  is(arrayItem6.header, true, "The seventh array item header state is correct.");
-  is(__proto__.header, true, "The __proto__ property header state is correct.");
-
-  is(arrayItem0.twisty, false, "The first array item twisty state is correct.");
-  is(arrayItem1.twisty, false, "The second array item twisty state is correct.");
-  is(arrayItem2.twisty, false, "The third array item twisty state is correct.");
-  is(arrayItem3.twisty, false, "The fourth array item twisty state is correct.");
-  is(arrayItem4.twisty, false, "The fifth array item twisty state is correct.");
-  is(arrayItem5.twisty, true, "The sixth array item twisty state is correct.");
-  is(arrayItem6.twisty, true, "The seventh array item twisty state is correct.");
-  is(__proto__.twisty, true, "The __proto__ property twisty state is correct.");
-
-  is(arrayItem0.name, "0", "The first array item name is correct.");
-  is(arrayItem1.name, "1", "The second array item name is correct.");
-  is(arrayItem2.name, "2", "The third array item name is correct.");
-  is(arrayItem3.name, "3", "The fourth array item name is correct.");
-  is(arrayItem4.name, "4", "The fifth array item name is correct.");
-  is(arrayItem5.name, "5", "The sixth array item name is correct.");
-  is(arrayItem6.name, "6", "The seventh array item name is correct.");
-  is(__proto__.name, "__proto__", "The __proto__ property name is correct.");
-
-  is(arrayItem0.value, 42, "The first array item value is correct.");
-  is(arrayItem1.value, true, "The second array item value is correct.");
-  is(arrayItem2.value, "nasu", "The third array item value is correct.");
-  is(arrayItem3.value.type, "undefined", "The fourth array item value is correct.");
-  is(arrayItem4.value.type, "null", "The fifth array item value is correct.");
-  is(arrayItem5.value.type, "object", "The sixth array item value type is correct.");
-  is(arrayItem5.value.class, "Array", "The sixth array item value class is correct.");
-  is(arrayItem6.value.type, "object", "The seventh array item value type is correct.");
-  is(arrayItem6.value.class, "Object", "The seventh array item value class is correct.");
-  is(__proto__.value.type, "object", "The __proto__ property value type is correct.");
-  is(__proto__.value.class, "Array", "The __proto__ property value class is correct.");
-
-  is(someProp6._store.size, 0, "No properties should be in someProp6 before expanding");
-  someProp6.expand();
-  is(someProp6._store.size, 10, "Some properties should be in someProp6 before expanding");
-
-  let objectItem0 = someProp6.get("p0");
-  let objectItem1 = someProp6.get("p1");
-  let objectItem2 = someProp6.get("p2");
-  let objectItem3 = someProp6.get("p3");
-  let objectItem4 = someProp6.get("p4");
-  let objectItem5 = someProp6.get("p5");
-  let objectItem6 = someProp6.get("p6");
-  let objectItem7 = someProp6.get("p7");
-  let objectItem8 = someProp6.get("p8");
-  __proto__ = someProp6.get("__proto__");
-
-  is(objectItem0.visible, true, "The first object item visible state is correct.");
-  is(objectItem1.visible, true, "The second object item visible state is correct.");
-  is(objectItem2.visible, true, "The third object item visible state is correct.");
-  is(objectItem3.visible, true, "The fourth object item visible state is correct.");
-  is(objectItem4.visible, true, "The fifth object item visible state is correct.");
-  is(objectItem5.visible, true, "The sixth object item visible state is correct.");
-  is(objectItem6.visible, true, "The seventh object item visible state is correct.");
-  is(objectItem7.visible, true, "The eight object item visible state is correct.");
-  is(objectItem8.visible, true, "The ninth object item visible state is correct.");
-  is(__proto__.visible, true, "The __proto__ property visible state is correct.");
-
-  is(objectItem0.expanded, false, "The first object item expanded state is correct.");
-  is(objectItem1.expanded, false, "The second object item expanded state is correct.");
-  is(objectItem2.expanded, false, "The third object item expanded state is correct.");
-  is(objectItem3.expanded, false, "The fourth object item expanded state is correct.");
-  is(objectItem4.expanded, false, "The fifth object item expanded state is correct.");
-  is(objectItem5.expanded, false, "The sixth object item expanded state is correct.");
-  is(objectItem6.expanded, false, "The seventh object item expanded state is correct.");
-  is(objectItem7.expanded, true, "The eight object item expanded state is correct.");
-  is(objectItem8.expanded, true, "The ninth object item expanded state is correct.");
-  is(__proto__.expanded, false, "The __proto__ property expanded state is correct.");
-
-  is(objectItem0.header, true, "The first object item header state is correct.");
-  is(objectItem1.header, true, "The second object item header state is correct.");
-  is(objectItem2.header, true, "The third object item header state is correct.");
-  is(objectItem3.header, true, "The fourth object item header state is correct.");
-  is(objectItem4.header, true, "The fifth object item header state is correct.");
-  is(objectItem5.header, true, "The sixth object item header state is correct.");
-  is(objectItem6.header, true, "The seventh object item header state is correct.");
-  is(objectItem7.header, true, "The eight object item header state is correct.");
-  is(objectItem8.header, true, "The ninth object item header state is correct.");
-  is(__proto__.header, true, "The __proto__ property header state is correct.");
-
-  is(objectItem0.twisty, false, "The first object item twisty state is correct.");
-  is(objectItem1.twisty, false, "The second object item twisty state is correct.");
-  is(objectItem2.twisty, false, "The third object item twisty state is correct.");
-  is(objectItem3.twisty, false, "The fourth object item twisty state is correct.");
-  is(objectItem4.twisty, false, "The fifth object item twisty state is correct.");
-  is(objectItem5.twisty, true, "The sixth object item twisty state is correct.");
-  is(objectItem6.twisty, true, "The seventh object item twisty state is correct.");
-  is(objectItem7.twisty, true, "The eight object item twisty state is correct.");
-  is(objectItem8.twisty, true, "The ninth object item twisty state is correct.");
-  is(__proto__.twisty, true, "The __proto__ property twisty state is correct.");
-
-  is(objectItem0.name, "p0", "The first object item name is correct.");
-  is(objectItem1.name, "p1", "The second object item name is correct.");
-  is(objectItem2.name, "p2", "The third object item name is correct.");
-  is(objectItem3.name, "p3", "The fourth object item name is correct.");
-  is(objectItem4.name, "p4", "The fifth object item name is correct.");
-  is(objectItem5.name, "p5", "The sixth object item name is correct.");
-  is(objectItem6.name, "p6", "The seventh object item name is correct.");
-  is(objectItem7.name, "p7", "The eight seventh object item name is correct.");
-  is(objectItem8.name, "p8", "The ninth seventh object item name is correct.");
-  is(__proto__.name, "__proto__", "The __proto__ property name is correct.");
-
-  is(objectItem0.value, 42, "The first object item value is correct.");
-  is(objectItem1.value, true, "The second object item value is correct.");
-  is(objectItem2.value, "nasu", "The third object item value is correct.");
-  is(objectItem3.value.type, "undefined", "The fourth object item value is correct.");
-  is(objectItem4.value.type, "null", "The fifth object item value is correct.");
-  is(objectItem5.value.type, "object", "The sixth object item value type is correct.");
-  is(objectItem5.value.class, "Array", "The sixth object item value class is correct.");
-  is(objectItem6.value.type, "object", "The seventh object item value type is correct.");
-  is(objectItem6.value.class, "Object", "The seventh object item value class is correct.");
-  is(objectItem7.value, null, "The eight object item value is correct.");
-  isnot(objectItem7.getter, null, "The eight object item getter is correct.");
-  isnot(objectItem7.setter, null, "The eight object item setter is correct.");
-  is(objectItem7.setter.type, "undefined", "The eight object item setter type is correct.");
-  is(objectItem7.getter.type, "object", "The eight object item getter type is correct.");
-  is(objectItem7.getter.class, "Function", "The eight object item getter class is correct.");
-  is(objectItem8.value, null, "The ninth object item value is correct.");
-  isnot(objectItem8.getter, null, "The ninth object item getter is correct.");
-  isnot(objectItem8.setter, null, "The ninth object item setter is correct.");
-  is(objectItem8.getter.type, "undefined", "The eight object item getter type is correct.");
-  is(objectItem8.setter.type, "object", "The ninth object item setter type is correct.");
-  is(objectItem8.setter.class, "Function", "The ninth object item setter class is correct.");
-  is(__proto__.value.type, "object", "The __proto__ property value type is correct.");
-  is(__proto__.value.class, "Object", "The __proto__ property value class is correct.");
-}
-
-function testThirdLevelContents() {
-  (function () {
-    let someProp5 = gVariable.get("someProp5");
-    let arrayItem5 = someProp5.get("5");
-    let arrayItem6 = someProp5.get("6");
-
-    is(arrayItem5._store.size, 0, "No properties should be in arrayItem5 before expanding");
-    arrayItem5.expand();
-    is(arrayItem5._store.size, 5, "Some properties should be in arrayItem5 before expanding");
-
-    is(arrayItem6._store.size, 0, "No properties should be in arrayItem6 before expanding");
-    arrayItem6.expand();
-    is(arrayItem6._store.size, 3, "Some properties should be in arrayItem6 before expanding");
-
-    let arraySubItem0 = arrayItem5.get("0");
-    let arraySubItem1 = arrayItem5.get("1");
-    let arraySubItem2 = arrayItem5.get("2");
-    let objectSubItem0 = arrayItem6.get("prop1");
-    let objectSubItem1 = arrayItem6.get("prop2");
-
-    is(arraySubItem0.value, 0, "The first array sub-item value is correct.");
-    is(arraySubItem1.value, 1, "The second array sub-item value is correct.");
-    is(arraySubItem2.value, 2, "The third array sub-item value is correct.");
-
-    is(objectSubItem0.value, 9, "The first object sub-item value is correct.");
-    is(objectSubItem1.value, 8, "The second object sub-item value is correct.");
-
-    let array__proto__ = arrayItem5.get("__proto__");
-    let object__proto__ = arrayItem6.get("__proto__");
-
-    ok(array__proto__, "The array should have a __proto__ property.");
-    ok(object__proto__, "The object should have a __proto__ property.");
-  })();
-
-  (function () {
-    let someProp6 = gVariable.get("someProp6");
-    let objectItem5 = someProp6.get("p5");
-    let objectItem6 = someProp6.get("p6");
-
-    is(objectItem5._store.size, 0, "No properties should be in objectItem5 before expanding");
-    objectItem5.expand();
-    is(objectItem5._store.size, 5, "Some properties should be in objectItem5 before expanding");
-
-    is(objectItem6._store.size, 0, "No properties should be in objectItem6 before expanding");
-    objectItem6.expand();
-    is(objectItem6._store.size, 3, "Some properties should be in objectItem6 before expanding");
-
-    let arraySubItem0 = objectItem5.get("0");
-    let arraySubItem1 = objectItem5.get("1");
-    let arraySubItem2 = objectItem5.get("2");
-    let objectSubItem0 = objectItem6.get("prop1");
-    let objectSubItem1 = objectItem6.get("prop2");
-
-    is(arraySubItem0.value, 3, "The first array sub-item value is correct.");
-    is(arraySubItem1.value, 4, "The second array sub-item value is correct.");
-    is(arraySubItem2.value, 5, "The third array sub-item value is correct.");
-
-    is(objectSubItem0.value, 7, "The first object sub-item value is correct.");
-    is(objectSubItem1.value, 6, "The second object sub-item value is correct.");
-
-    let array__proto__ = objectItem5.get("__proto__");
-    let object__proto__ = objectItem6.get("__proto__");
-
-    ok(array__proto__, "The array should have a __proto__ property.");
-    ok(object__proto__, "The object should have a __proto__ property.");
-  })();
-}
-
-function testOriginalRawDataIntegrity(arr, obj) {
-  is(arr[0], 42, "The first array item should not have changed.");
-  is(arr[1], true, "The second array item should not have changed.");
-  is(arr[2], "nasu", "The third array item should not have changed.");
-  is(arr[3], undefined, "The fourth array item should not have changed.");
-  is(arr[4], null, "The fifth array item should not have changed.");
-  ok(arr[5] instanceof Array, "The sixth array item should be an Array.");
-  is(arr[5][0], 0, "The sixth array item should not have changed.");
-  is(arr[5][1], 1, "The sixth array item should not have changed.");
-  is(arr[5][2], 2, "The sixth array item should not have changed.");
-  ok(arr[6] instanceof Object, "The seventh array item should be an Object.");
-  is(arr[6].prop1, 9, "The seventh array item should not have changed.");
-  is(arr[6].prop2, 8, "The seventh array item should not have changed.");
-
-  is(obj.p0, 42, "The first object property should not have changed.");
-  is(obj.p1, true, "The first object property should not have changed.");
-  is(obj.p2, "nasu", "The first object property should not have changed.");
-  is(obj.p3, undefined, "The first object property should not have changed.");
-  is(obj.p4, null, "The first object property should not have changed.");
-  ok(obj.p5 instanceof Array, "The sixth object property should be an Array.");
-  is(obj.p5[0], 3, "The sixth object property should not have changed.");
-  is(obj.p5[1], 4, "The sixth object property should not have changed.");
-  is(obj.p5[2], 5, "The sixth object property should not have changed.");
-  ok(obj.p6 instanceof Object, "The seventh object property should be an Object.");
-  is(obj.p6.prop1, 7, "The seventh object property should not have changed.");
-  is(obj.p6.prop2, 6, "The seventh object property should not have changed.");
-}
-
-function testAnonymousHeaders(fooScope, anonymousVar, anonymousScope, barVar, bazProperty) {
-  is(fooScope.header, true,
-    "A named scope should have a header visible.");
-  is(fooScope.target.hasAttribute("untitled"), false,
-    "The non-header attribute should not be applied to scopes with headers.");
-
-  is(anonymousScope.header, false,
-    "An anonymous scope should have a header visible.");
-  is(anonymousScope.target.hasAttribute("untitled"), true,
-    "The non-header attribute should not be applied to scopes without headers.");
-
-  is(barVar.header, true,
-    "A named variable should have a header visible.");
-  is(barVar.target.hasAttribute("untitled"), false,
-    "The non-header attribute should not be applied to variables with headers.");
-
-  is(anonymousVar.header, false,
-    "An anonymous variable should have a header visible.");
-  is(anonymousVar.target.hasAttribute("untitled"), true,
-    "The non-header attribute should not be applied to variables without headers.");
-}
-
-function testPropertyInheritance(fooScope, anonymousVar, anonymousScope, barVar, bazProperty) {
-  is(fooScope.preventDisableOnChange, gVariablesView.preventDisableOnChange,
-    "The preventDisableOnChange property should persist from the view to all scopes.");
-  is(fooScope.preventDescriptorModifiers, gVariablesView.preventDescriptorModifiers,
-    "The preventDescriptorModifiers property should persist from the view to all scopes.");
-  is(fooScope.editableNameTooltip, gVariablesView.editableNameTooltip,
-    "The editableNameTooltip property should persist from the view to all scopes.");
-  is(fooScope.editableValueTooltip, gVariablesView.editableValueTooltip,
-    "The editableValueTooltip property should persist from the view to all scopes.");
-  is(fooScope.editButtonTooltip, gVariablesView.editButtonTooltip,
-    "The editButtonTooltip property should persist from the view to all scopes.");
-  is(fooScope.deleteButtonTooltip, gVariablesView.deleteButtonTooltip,
-    "The deleteButtonTooltip property should persist from the view to all scopes.");
-  is(fooScope.contextMenuId, gVariablesView.contextMenuId,
-    "The contextMenuId property should persist from the view to all scopes.");
-  is(fooScope.separatorStr, gVariablesView.separatorStr,
-    "The separatorStr property should persist from the view to all scopes.");
-  is(fooScope.eval, gVariablesView.eval,
-    "The eval property should persist from the view to all scopes.");
-  is(fooScope.switch, gVariablesView.switch,
-    "The switch property should persist from the view to all scopes.");
-  is(fooScope.delete, gVariablesView.delete,
-    "The delete property should persist from the view to all scopes.");
-  is(fooScope.new, gVariablesView.new,
-    "The new property should persist from the view to all scopes.");
-  isnot(fooScope.eval, fooScope.switch,
-    "The eval and switch functions got mixed up in the scope.");
-  isnot(fooScope.switch, fooScope.delete,
-    "The eval and switch functions got mixed up in the scope.");
-
-  is(barVar.preventDisableOnChange, gVariablesView.preventDisableOnChange,
-    "The preventDisableOnChange property should persist from the view to all variables.");
-  is(barVar.preventDescriptorModifiers, gVariablesView.preventDescriptorModifiers,
-    "The preventDescriptorModifiers property should persist from the view to all variables.");
-  is(barVar.editableNameTooltip, gVariablesView.editableNameTooltip,
-    "The editableNameTooltip property should persist from the view to all variables.");
-  is(barVar.editableValueTooltip, gVariablesView.editableValueTooltip,
-    "The editableValueTooltip property should persist from the view to all variables.");
-  is(barVar.editButtonTooltip, gVariablesView.editButtonTooltip,
-    "The editButtonTooltip property should persist from the view to all variables.");
-  is(barVar.deleteButtonTooltip, gVariablesView.deleteButtonTooltip,
-    "The deleteButtonTooltip property should persist from the view to all variables.");
-  is(barVar.contextMenuId, gVariablesView.contextMenuId,
-    "The contextMenuId property should persist from the view to all variables.");
-  is(barVar.separatorStr, gVariablesView.separatorStr,
-    "The separatorStr property should persist from the view to all variables.");
-  is(barVar.eval, gVariablesView.eval,
-    "The eval property should persist from the view to all variables.");
-  is(barVar.switch, gVariablesView.switch,
-    "The switch property should persist from the view to all variables.");
-  is(barVar.delete, gVariablesView.delete,
-    "The delete property should persist from the view to all variables.");
-  is(barVar.new, gVariablesView.new,
-    "The new property should persist from the view to all variables.");
-  isnot(barVar.eval, barVar.switch,
-    "The eval and switch functions got mixed up in the variable.");
-  isnot(barVar.switch, barVar.delete,
-    "The eval and switch functions got mixed up in the variable.");
-
-  is(bazProperty.preventDisableOnChange, gVariablesView.preventDisableOnChange,
-    "The preventDisableOnChange property should persist from the view to all properties.");
-  is(bazProperty.preventDescriptorModifiers, gVariablesView.preventDescriptorModifiers,
-    "The preventDescriptorModifiers property should persist from the view to all properties.");
-  is(bazProperty.editableNameTooltip, gVariablesView.editableNameTooltip,
-    "The editableNameTooltip property should persist from the view to all properties.");
-  is(bazProperty.editableValueTooltip, gVariablesView.editableValueTooltip,
-    "The editableValueTooltip property should persist from the view to all properties.");
-  is(bazProperty.editButtonTooltip, gVariablesView.editButtonTooltip,
-    "The editButtonTooltip property should persist from the view to all properties.");
-  is(bazProperty.deleteButtonTooltip, gVariablesView.deleteButtonTooltip,
-    "The deleteButtonTooltip property should persist from the view to all properties.");
-  is(bazProperty.contextMenuId, gVariablesView.contextMenuId,
-    "The contextMenuId property should persist from the view to all properties.");
-  is(bazProperty.separatorStr, gVariablesView.separatorStr,
-    "The separatorStr property should persist from the view to all properties.");
-  is(bazProperty.eval, gVariablesView.eval,
-    "The eval property should persist from the view to all properties.");
-  is(bazProperty.switch, gVariablesView.switch,
-    "The switch property should persist from the view to all properties.");
-  is(bazProperty.delete, gVariablesView.delete,
-    "The delete property should persist from the view to all properties.");
-  is(bazProperty.new, gVariablesView.new,
-    "The new property should persist from the view to all properties.");
-  isnot(bazProperty.eval, bazProperty.switch,
-    "The eval and switch functions got mixed up in the property.");
-  isnot(bazProperty.switch, bazProperty.delete,
-    "The eval and switch functions got mixed up in the property.");
-}
-
-function testClearHierarchy() {
-  gVariablesView.clearHierarchy();
-  ok(!gVariablesView._prevHierarchy.size,
-    "The previous hierarchy should have been cleared.");
-  ok(!gVariablesView._currHierarchy.size,
-    "The current hierarchy should have been cleared.");
-}
-
-registerCleanupFunction(function () {
-  gTab = null;
-  gPanel = null;
-  gDebugger = null;
-  gVariablesView = null;
-  gScope = null;
-  gVariable = null;
-});
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-edit-cancel.js
+++ /dev/null
@@ -1,58 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Make sure that canceling a name change correctly unhides the separator and
- * value elements.
- */
-
-const TAB_URL = EXAMPLE_URL + "doc_watch-expressions.html";
-
-function test() {
-  Task.spawn(function* () {
-    let options = {
-      source: TAB_URL,
-      line: 1
-    };
-    let [tab,, panel] = yield initDebugger(TAB_URL, options);
-    let win = panel.panelWin;
-    let vars = win.DebuggerView.Variables;
-
-    win.DebuggerView.WatchExpressions.addExpression("this");
-
-    callInTab(tab, "ermahgerd");
-    yield waitForDebuggerEvents(panel, win.EVENTS.FETCHED_WATCH_EXPRESSIONS);
-
-    let exprScope = vars.getScopeAtIndex(0);
-    let {target} = exprScope.get("this");
-
-    let name = target.querySelector(".title > .name");
-    let separator = target.querySelector(".separator");
-    let value = target.querySelector(".value");
-
-    is(separator.hidden, false,
-      "The separator element should not be hidden.");
-    is(value.hidden, false,
-      "The value element should not be hidden.");
-
-    for (let key of ["ESCAPE", "RETURN"]) {
-      EventUtils.sendMouseEvent({ type: "dblclick" }, name, win);
-
-      is(separator.hidden, true,
-        "The separator element should be hidden.");
-      is(value.hidden, true,
-        "The value element should be hidden.");
-
-      EventUtils.sendKey(key, win);
-
-      is(separator.hidden, false,
-        "The separator element should not be hidden.");
-      is(value.hidden, false,
-        "The value element should not be hidden.");
-    }
-
-    yield resumeDebuggerThenCloseAndFinish(panel);
-  });
-}
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-edit-click.js
+++ /dev/null
@@ -1,58 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Check that the editing state of a Variable is correctly tracked. Clicking on
- * the textbox while editing should not cancel editing.
- */
-
-const TAB_URL = EXAMPLE_URL + "doc_watch-expressions.html";
-
-function test() {
-  Task.spawn(function* () {
-    let options = {
-      source: TAB_URL,
-      line: 1
-    };
-    let [tab, debuggee, panel] = yield initDebugger(TAB_URL, options);
-    let win = panel.panelWin;
-    let vars = win.DebuggerView.Variables;
-
-    win.DebuggerView.WatchExpressions.addExpression("this");
-
-    // Allow this generator function to yield first.
-    executeSoon(() => debuggee.ermahgerd());
-    yield waitForDebuggerEvents(panel, win.EVENTS.FETCHED_WATCH_EXPRESSIONS);
-
-    let exprScope = vars.getScopeAtIndex(0);
-    let exprVar = exprScope.get("this");
-    let name = exprVar.target.querySelector(".title > .name");
-
-    is(exprVar.editing, false,
-      "The expression should indicate it is not being edited.");
-
-    EventUtils.sendMouseEvent({ type: "dblclick" }, name, win);
-    let input = exprVar.target.querySelector(".title > .element-name-input");
-    is(exprVar.editing, true,
-      "The expression should indicate it is being edited.");
-    is(input.selectionStart !== input.selectionEnd, true,
-      "The expression text should be selected.");
-
-    EventUtils.synthesizeMouse(input, 2, 2, {}, win);
-    is(exprVar.editing, true,
-      "The expression should indicate it is still being edited after a click.");
-    is(input.selectionStart === input.selectionEnd, true,
-      "The expression text should not be selected.");
-
-    EventUtils.sendKey("ESCAPE", win);
-    is(exprVar.editing, false,
-      "The expression should indicate it is not being edited after cancelling.");
-
-    // Why is this needed?
-    EventUtils.synthesizeMouse(vars.parentNode, 2, 2, {}, win);
-
-    yield resumeDebuggerThenCloseAndFinish(panel);
-  });
-}
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-edit-getset-01.js
+++ /dev/null
@@ -1,300 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Make sure that the variables view knows how to edit getters and setters.
- */
-
-const TAB_URL = EXAMPLE_URL + "doc_frame-parameters.html";
-
-var gTab, gPanel, gDebugger;
-var gL10N, gEditor, gVars, gWatch;
-
-function test() {
-  // Debug test slaves are a bit slow at this test.
-  requestLongerTimeout(2);
-
-  let options = {
-    source: TAB_URL,
-    line: 1
-  };
-  initDebugger(TAB_URL, options).then(([aTab,, aPanel]) => {
-    gTab = aTab;
-    gPanel = aPanel;
-    gDebugger = gPanel.panelWin;
-    gL10N = gDebugger.L10N;
-    gEditor = gDebugger.DebuggerView.editor;
-    gVars = gDebugger.DebuggerView.Variables;
-    gWatch = gDebugger.DebuggerView.WatchExpressions;
-
-    gVars.switch = function () {};
-    gVars.delete = function () {};
-
-    waitForCaretAndScopes(gPanel, 24)
-      .then(() => addWatchExpressions())
-      .then(() => testEdit("set", "this._prop = value + ' BEER CAN'", {
-        "myVar.prop": "xlerb BEER CAN",
-        "myVar.prop + 42": "xlerb BEER CAN42",
-        "myVar.prop = 'xlerb'": "xlerb"
-      }))
-      .then(() => testEdit("set", "{ this._prop = value + ' BEACON' }", {
-        "myVar.prop": "xlerb BEACON",
-        "myVar.prop + 42": "xlerb BEACON42",
-        "myVar.prop = 'xlerb'": "xlerb"
-      }))
-      .then(() => testEdit("set", "{ this._prop = value + ' BEACON;'; }", {
-        "myVar.prop": "xlerb BEACON;",
-        "myVar.prop + 42": "xlerb BEACON;42",
-        "myVar.prop = 'xlerb'": "xlerb"
-      }))
-      .then(() => testEdit("set", "{ return this._prop = value + ' BEACON;;'; }", {
-        "myVar.prop": "xlerb BEACON;;",
-        "myVar.prop + 42": "xlerb BEACON;;42",
-        "myVar.prop = 'xlerb'": "xlerb"
-      }))
-      .then(() => testEdit("set", "function(value) { this._prop = value + ' BACON' }", {
-        "myVar.prop": "xlerb BACON",
-        "myVar.prop + 42": "xlerb BACON42",
-        "myVar.prop = 'xlerb'": "xlerb"
-      }))
-      .then(() => testEdit("get", "'brelx BEER CAN'", {
-        "myVar.prop": "brelx BEER CAN",
-        "myVar.prop + 42": "brelx BEER CAN42",
-        "myVar.prop = 'xlerb'": "xlerb"
-      }))
-      .then(() => testEdit("get", "{ 'brelx BEACON' }", {
-        "myVar.prop": undefined,
-        "myVar.prop + 42": NaN,
-        "myVar.prop = 'xlerb'": "xlerb"
-      }))
-      .then(() => testEdit("get", "{ 'brelx BEACON;'; }", {
-        "myVar.prop": undefined,
-        "myVar.prop + 42": NaN,
-        "myVar.prop = 'xlerb'": "xlerb"
-      }))
-      .then(() => testEdit("get", "{ return 'brelx BEACON;;'; }", {
-        "myVar.prop": "brelx BEACON;;",
-        "myVar.prop + 42": "brelx BEACON;;42",
-        "myVar.prop = 'xlerb'": "xlerb"
-      }))
-      .then(() => testEdit("get", "function() { return 'brelx BACON'; }", {
-        "myVar.prop": "brelx BACON",
-        "myVar.prop + 42": "brelx BACON42",
-        "myVar.prop = 'xlerb'": "xlerb"
-      }))
-      .then(() => testEdit("get", "bogus", {
-        "myVar.prop": "ReferenceError: bogus is not defined",
-        "myVar.prop + 42": "ReferenceError: bogus is not defined",
-        "myVar.prop = 'xlerb'": "xlerb"
-      }))
-      .then(() => testEdit("set", "sugob", {
-        "myVar.prop": "ReferenceError: bogus is not defined",
-        "myVar.prop + 42": "ReferenceError: bogus is not defined",
-        "myVar.prop = 'xlerb'": "ReferenceError: sugob is not defined"
-      }))
-      .then(() => testEdit("get", "", {
-        "myVar.prop": undefined,
-        "myVar.prop + 42": NaN,
-        "myVar.prop = 'xlerb'": "ReferenceError: sugob is not defined"
-      }))
-      .then(() => testEdit("set", "", {
-        "myVar.prop": "xlerb",
-        "myVar.prop + 42": NaN,
-        "myVar.prop = 'xlerb'": "xlerb"
-      }))
-      .then(() => deleteWatchExpression("myVar.prop = 'xlerb'"))
-      .then(() => testEdit("self", "2507", {
-        "myVar.prop": 2507,
-        "myVar.prop + 42": 2549
-      }))
-      .then(() => deleteWatchExpression("myVar.prop + 42"))
-      .then(() => testEdit("self", "0910", {
-        "myVar.prop": 910
-      }))
-      .then(() => deleteLastWatchExpression("myVar.prop"))
-      .then(() => testWatchExpressionsRemoved())
-      .then(() => resumeDebuggerThenCloseAndFinish(gPanel))
-      .catch(aError => {
-        ok(false, "Got an error: " + aError.message + "\n" + aError.stack);
-      });
-
-    generateMouseClickInTab(gTab, "content.document.querySelector('button')");
-  });
-}
-
-function addWatchExpressions() {
-  return promise.resolve(null)
-    .then(() => {
-      let finished = waitForDebuggerEvents(gPanel, gDebugger.EVENTS.FETCHED_WATCH_EXPRESSIONS);
-      gWatch.addExpression("myVar.prop");
-      gEditor.focus();
-      return finished;
-    })
-    .then(() => {
-      let exprScope = gVars.getScopeAtIndex(0);
-      ok(exprScope,
-        "There should be a wach expressions scope in the variables view.");
-      is(exprScope.name, gL10N.getStr("watchExpressionsScopeLabel"),
-        "The scope's name should be marked as 'Watch Expressions'.");
-      is(exprScope._store.size, 1,
-        "There should be 1 evaluation available.");
-
-      let w1 = exprScope.get("myVar.prop");
-      let w2 = exprScope.get("myVar.prop + 42");
-      let w3 = exprScope.get("myVar.prop = 'xlerb'");
-
-      ok(w1, "The first watch expression should be present in the scope.");
-      ok(!w2, "The second watch expression should not be present in the scope.");
-      ok(!w3, "The third watch expression should not be present in the scope.");
-
-      is(w1.value, 42, "The first value is correct.");
-    })
-    .then(() => {
-      let finished = waitForDebuggerEvents(gPanel, gDebugger.EVENTS.FETCHED_WATCH_EXPRESSIONS);
-      gWatch.addExpression("myVar.prop + 42");
-      gEditor.focus();
-      return finished;
-    })
-    .then(() => {
-      let exprScope = gVars.getScopeAtIndex(0);
-      ok(exprScope,
-        "There should be a wach expressions scope in the variables view.");
-      is(exprScope.name, gL10N.getStr("watchExpressionsScopeLabel"),
-        "The scope's name should be marked as 'Watch Expressions'.");
-      is(exprScope._store.size, 2,
-        "There should be 2 evaluations available.");
-
-      let w1 = exprScope.get("myVar.prop");
-      let w2 = exprScope.get("myVar.prop + 42");
-      let w3 = exprScope.get("myVar.prop = 'xlerb'");
-
-      ok(w1, "The first watch expression should be present in the scope.");
-      ok(w2, "The second watch expression should be present in the scope.");
-      ok(!w3, "The third watch expression should not be present in the scope.");
-
-      is(w1.value, "42", "The first expression value is correct.");
-      is(w2.value, "84", "The second expression value is correct.");
-    })
-    .then(() => {
-      let finished = waitForDebuggerEvents(gPanel, gDebugger.EVENTS.FETCHED_WATCH_EXPRESSIONS);
-      gWatch.addExpression("myVar.prop = 'xlerb'");
-      gEditor.focus();
-      return finished;
-    })
-    .then(() => {
-      let exprScope = gVars.getScopeAtIndex(0);
-      ok(exprScope,
-        "There should be a wach expressions scope in the variables view.");
-      is(exprScope.name, gL10N.getStr("watchExpressionsScopeLabel"),
-        "The scope's name should be marked as 'Watch Expressions'.");
-      is(exprScope._store.size, 3,
-        "There should be 3 evaluations available.");
-
-      let w1 = exprScope.get("myVar.prop");
-      let w2 = exprScope.get("myVar.prop + 42");
-      let w3 = exprScope.get("myVar.prop = 'xlerb'");
-
-      ok(w1, "The first watch expression should be present in the scope.");
-      ok(w2, "The second watch expression should be present in the scope.");
-      ok(w3, "The third watch expression should be present in the scope.");
-
-      is(w1.value, "xlerb", "The first expression value is correct.");
-      is(w2.value, "xlerb42", "The second expression value is correct.");
-      is(w3.value, "xlerb", "The third expression value is correct.");
-    });
-}
-
-function deleteWatchExpression(aString) {
-  let finished = waitForDebuggerEvents(gPanel, gDebugger.EVENTS.FETCHED_WATCH_EXPRESSIONS);
-  gWatch.deleteExpression({ name: aString });
-  return finished;
-}
-
-function deleteLastWatchExpression(aString) {
-  let finished = waitForDebuggerEvents(gPanel, gDebugger.EVENTS.FETCHED_SCOPES);
-  gWatch.deleteExpression({ name: aString });
-  return finished;
-}
-
-function testEdit(aWhat, aString, aExpected) {
-  let localScope = gVars.getScopeAtIndex(1);
-  let myVar = localScope.get("myVar");
-
-  let finished = waitForDebuggerEvents(gPanel, gDebugger.EVENTS.FETCHED_PROPERTIES).then(() => {
-    let propVar = myVar.get("prop");
-    let getterOrSetterOrVar = aWhat != "self" ? propVar.get(aWhat) : propVar;
-
-    let finished = waitForDebuggerEvents(gPanel, gDebugger.EVENTS.FETCHED_WATCH_EXPRESSIONS).then(() => {
-      let exprScope = gVars.getScopeAtIndex(0);
-      ok(exprScope,
-        "There should be a wach expressions scope in the variables view.");
-      is(exprScope.name, gL10N.getStr("watchExpressionsScopeLabel"),
-        "The scope's name should be marked as 'Watch Expressions'.");
-      is(exprScope._store.size, Object.keys(aExpected).length,
-        "There should be a certain number of evaluations available.");
-
-      function testExpression(aExpression) {
-        if (!aExpression) {
-          return;
-        }
-        let value = aExpected[aExpression.name];
-        if (isNaN(value)) {
-          ok(isNaN(aExpression.value),
-            "The expression value is correct after the edit.");
-        } else if (value == null) {
-          is(aExpression.value.type, value + "",
-            "The expression value is correct after the edit.");
-        } else {
-          is(aExpression.value, value,
-            "The expression value is correct after the edit.");
-        }
-      }
-
-      testExpression(exprScope.get(Object.keys(aExpected)[0]));
-      testExpression(exprScope.get(Object.keys(aExpected)[1]));
-      testExpression(exprScope.get(Object.keys(aExpected)[2]));
-    });
-
-    let editTarget = getterOrSetterOrVar.target;
-
-    // Allow the target variable to get painted, so that clicking on
-    // its value would scroll the new textbox node into view.
-    executeSoon(() => {
-      let varValue = editTarget.querySelector(".title > .value");
-      EventUtils.sendMouseEvent({ type: "mousedown" }, varValue, gDebugger);
-
-      let varInput = editTarget.querySelector(".title > .element-value-input");
-      setText(varInput, aString);
-      EventUtils.sendKey("RETURN", gDebugger);
-    });
-
-    return finished;
-  });
-
-  myVar.expand();
-  gVars.clearHierarchy();
-
-  return finished;
-}
-
-function testWatchExpressionsRemoved() {
-  let scope = gVars.getScopeAtIndex(0);
-  ok(scope,
-    "There should be a local scope in the variables view.");
-  isnot(scope.name, gL10N.getStr("watchExpressionsScopeLabel"),
-    "The scope's name should not be marked as 'Watch Expressions'.");
-  isnot(scope._store.size, 0,
-    "There should be some variables available.");
-}
-
-registerCleanupFunction(function () {
-  gTab = null;
-  gPanel = null;
-  gDebugger = null;
-  gL10N = null;
-  gEditor = null;
-  gVars = null;
-  gWatch = null;
-});
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-edit-getset-02.js
+++ /dev/null
@@ -1,107 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Make sure that the variables view is able to override getter properties
- * to plain value properties.
- */
-
-const TAB_URL = EXAMPLE_URL + "doc_frame-parameters.html";
-
-var gTab, gPanel, gDebugger;
-var gL10N, gEditor, gVars, gWatch;
-
-function test() {
-  // Debug test slaves are a bit slow at this test.
-  requestLongerTimeout(2);
-
-  let options = {
-    source: TAB_URL,
-    line: 1
-  };
-  initDebugger(TAB_URL, options).then(([aTab,, aPanel]) => {
-    gTab = aTab;
-    gPanel = aPanel;
-    gDebugger = gPanel.panelWin;
-    gL10N = gDebugger.L10N;
-    gEditor = gDebugger.DebuggerView.editor;
-    gVars = gDebugger.DebuggerView.Variables;
-    gWatch = gDebugger.DebuggerView.WatchExpressions;
-
-    gVars.switch = function () {};
-    gVars.delete = function () {};
-
-    waitForCaretAndScopes(gPanel, 24)
-      .then(() => addWatchExpression())
-      .then(() => testEdit("\"xlerb\"", "xlerb"))
-      .then(() => resumeDebuggerThenCloseAndFinish(gPanel))
-      .catch(aError => {
-        ok(false, "Got an error: " + aError.message + "\n" + aError.stack);
-      });
-
-    generateMouseClickInTab(gTab, "content.document.querySelector('button')");
-  });
-}
-
-function addWatchExpression() {
-  let finished = waitForDebuggerEvents(gPanel, gDebugger.EVENTS.FETCHED_WATCH_EXPRESSIONS);
-
-  gWatch.addExpression("myVar.prop");
-  gEditor.focus();
-
-  return finished;
-}
-
-function testEdit(aString, aExpected) {
-  let localScope = gVars.getScopeAtIndex(1);
-  let myVar = localScope.get("myVar");
-
-  let finished = waitForDebuggerEvents(gPanel, gDebugger.EVENTS.FETCHED_PROPERTIES).then(() => {
-    let finished = waitForDebuggerEvents(gPanel, gDebugger.EVENTS.FETCHED_WATCH_EXPRESSIONS).then(() => {
-      let exprScope = gVars.getScopeAtIndex(0);
-
-      ok(exprScope,
-        "There should be a wach expressions scope in the variables view.");
-      is(exprScope.name, gL10N.getStr("watchExpressionsScopeLabel"),
-        "The scope's name should be marked as 'Watch Expressions'.");
-      is(exprScope._store.size, 1,
-        "There should be one evaluation available.");
-
-      is(exprScope.get("myVar.prop").value, aExpected,
-        "The expression value is correct after the edit.");
-    });
-
-    let editTarget = myVar.get("prop").target;
-
-    // Allow the target variable to get painted, so that clicking on
-    // its value would scroll the new textbox node into view.
-    executeSoon(() => {
-      let varEdit = editTarget.querySelector(".title > .variables-view-edit");
-      EventUtils.sendMouseEvent({ type: "mousedown" }, varEdit, gDebugger);
-
-      let varInput = editTarget.querySelector(".title > .element-value-input");
-      setText(varInput, aString);
-      EventUtils.sendKey("RETURN", gDebugger);
-    });
-
-    return finished;
-  });
-
-  myVar.expand();
-  gVars.clearHierarchy();
-
-  return finished;
-}
-
-registerCleanupFunction(function () {
-  gTab = null;
-  gPanel = null;
-  gDebugger = null;
-  gL10N = null;
-  gEditor = null;
-  gVars = null;
-  gWatch = null;
-});
-
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-edit-value-01.js
+++ /dev/null
@@ -1,91 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Make sure that the editing variables or properties values works properly.
- */
-
-const TAB_URL = EXAMPLE_URL + "doc_frame-parameters.html";
-
-var gTab, gPanel, gDebugger;
-var gVars;
-
-function test() {
-  let options = {
-    source: TAB_URL,
-    line: 1
-  };
-  initDebugger(TAB_URL, options).then(([aTab,, aPanel]) => {
-    gTab = aTab;
-    gPanel = aPanel;
-    gDebugger = gPanel.panelWin;
-    gVars = gDebugger.DebuggerView.Variables;
-
-    waitForCaretAndScopes(gPanel, 24)
-      .then(() => initialChecks())
-      .then(() => testModification("a", "1"))
-      .then(() => testModification("{ a: 1 }", "Object"))
-      .then(() => testModification("[a]", "Array[1]"))
-      .then(() => testModification("b", "Object"))
-      .then(() => testModification("b.a", "1"))
-      .then(() => testModification("c.a", "1"))
-      .then(() => testModification("Infinity", "Infinity"))
-      .then(() => testModification("NaN", "NaN"))
-      .then(() => testModification("new Function", "anonymous()"))
-      .then(() => testModification("+0", "0"))
-      .then(() => testModification("-0", "-0"))
-      .then(() => testModification("Object.keys({})", "Array[0]"))
-      .then(() => testModification("document.title", '"Debugger test page"'))
-      .then(() => resumeDebuggerThenCloseAndFinish(gPanel))
-      .catch(aError => {
-        ok(false, "Got an error: " + aError.message + "\n" + aError.stack);
-      });
-
-    generateMouseClickInTab(gTab, "content.document.querySelector('button')");
-  });
-}
-
-function initialChecks() {
-  let localScope = gVars.getScopeAtIndex(0);
-  let aVar = localScope.get("a");
-
-  is(aVar.target.querySelector(".name").getAttribute("value"), "a",
-    "Should have the right name for 'a'.");
-  is(aVar.target.querySelector(".value").getAttribute("value"), "1",
-    "Should have the right initial value for 'a'.");
-}
-
-function testModification(aNewValue, aNewResult) {
-  let localScope = gVars.getScopeAtIndex(0);
-  let aVar = localScope.get("a");
-
-  // Allow the target variable to get painted, so that clicking on
-  // its value would scroll the new textbox node into view.
-  executeSoon(() => {
-    let varValue = aVar.target.querySelector(".title > .value");
-    EventUtils.sendMouseEvent({ type: "mousedown" }, varValue, gDebugger);
-
-    let varInput = aVar.target.querySelector(".title > .element-value-input");
-    setText(varInput, aNewValue);
-    EventUtils.sendKey("RETURN", gDebugger);
-  });
-
-  return waitForDebuggerEvents(gPanel, gDebugger.EVENTS.FETCHED_SCOPES).then(() => {
-    let localScope = gVars.getScopeAtIndex(0);
-    let aVar = localScope.get("a");
-
-    is(aVar.target.querySelector(".name").getAttribute("value"), "a",
-      "Should have the right name for 'a'.");
-    is(aVar.target.querySelector(".value").getAttribute("value"), aNewResult,
-      "Should have the right new value for 'a'.");
-  });
-}
-
-registerCleanupFunction(function () {
-  gTab = null;
-  gPanel = null;
-  gDebugger = null;
-  gVars = null;
-});
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-edit-value-02.js
+++ /dev/null
@@ -1,76 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Make sure that the editing variables or properties values works properly.
- */
-
-const TAB_URL = EXAMPLE_URL + "doc_whitespace-property-names.html";
-
-var gDebugger, gVars;
-
-function test() {
-  let options = {
-    source: TAB_URL,
-    line: 1
-  };
-  initDebugger(TAB_URL, options).then(([tab,, panel]) => {
-    gDebugger = panel.panelWin;
-    gVars = gDebugger.DebuggerView.Variables;
-
-    let scopes = waitForCaretAndScopes(panel, 26);
-    callInTab(tab, "doPause");
-    scopes.then(() => {
-      let obj = getObjectScope();
-      ok(obj, "Should have found the 'obj' variable");
-      info("Expanding variable 'obj'");
-      let expanded = once(gVars, "fetched");
-      obj.expand();
-      return expanded;
-    }).then(() => initialCheck("\u2028", "\\u2028", "8"))
-      .then(() => initialCheck("\u2029", "\\u2029", "9"))
-      .then(() => testModification("\u2028", "\\u2028", "123", "123"))
-      .then(() => testModification("\u2029", "\\u2029", "456", "456"))
-      .then(() => resumeDebuggerThenCloseAndFinish(panel))
-      .catch(aError => {
-        ok(false, "Got an error: " + aError.message + "\n" + aError.stack);
-      });
-  });
-}
-
-function getObjectScope() {
-  return gVars.getScopeAtIndex(0).get("obj");
-}
-
-function initialCheck(aProp, aPropReadable, aValue) {
-  let aVar = getObjectScope().get(aProp);
-  is(aVar.target.querySelector(".value").getAttribute("value"), aValue,
-    "Should have the right initial value for '" + aPropReadable + "'.");
-}
-
-function testModification(aProp, aPropReadable, aNewValue, aNewResult) {
-  let aVar = getObjectScope().get(aProp);
-
-  // Allow the target variable to get painted, so that clicking on
-  // its value would scroll the new textbox node into view.
-  executeSoon(() => {
-    let varValue = aVar.target.querySelector(".title > .value");
-    EventUtils.sendMouseEvent({ type: "mousedown" }, varValue, gDebugger);
-
-    let varInput = aVar.target.querySelector(".title > .element-value-input");
-    setText(varInput, aNewValue);
-    EventUtils.sendKey("RETURN", gDebugger);
-  });
-
-  return once(gVars, "fetched").then(() => {
-    let aVar = getObjectScope().get(aProp);
-    is(aVar.target.querySelector(".value").getAttribute("value"), aNewResult,
-        "Should have the right new value for '" + aPropReadable + "'.");
-  });
-}
-
-registerCleanupFunction(function () {
-  gDebugger = gVars = null;
-});
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-edit-watch.js
+++ /dev/null
@@ -1,510 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Make sure that the editing or removing watch expressions works properly.
- */
-
-const TAB_URL = EXAMPLE_URL + "doc_watch-expressions.html";
-
-var gTab, gPanel, gDebugger;
-var gL10N, gEditor, gVars, gWatch;
-
-function test() {
-  let options = {
-    source: TAB_URL,
-    line: 1
-  };
-  initDebugger(TAB_URL, options).then(([aTab,, aPanel]) => {
-    gTab = aTab;
-    gPanel = aPanel;
-    gDebugger = gPanel.panelWin;
-    gL10N = gDebugger.L10N;
-    gEditor = gDebugger.DebuggerView.editor;
-    gVars = gDebugger.DebuggerView.Variables;
-    gWatch = gDebugger.DebuggerView.WatchExpressions;
-
-    promise.all([
-      waitForDebuggerEvents(gPanel, gDebugger.EVENTS.FETCHED_WATCH_EXPRESSIONS),
-      waitForCaretAndScopes(gPanel, 18)])
-      .then(() => testInitialVariablesInScope())
-      .then(() => testInitialExpressionsInScope())
-      .then(() => testModification("document.title = 42", "document.title = 43", "43", "undefined"))
-      .then(() => testIntegrity1())
-      .then(() => testModification("aArg", "aArg = 44", "44", "44"))
-      .then(() => testIntegrity2())
-      .then(() => testModification("aArg = 44", "\ \t\r\ndocument.title\ \t\r\n", "\"43\"", "44"))
-      .then(() => testIntegrity3())
-      .then(() => testModification("document.title = 43", "\ \t\r\ndocument.title\ \t\r\n", "\"43\"", "44"))
-      .then(() => testIntegrity4())
-      .then(() => testModification("document.title", "\ \t\r\n", "\"43\"", "44"))
-      .then(() => testIntegrity5())
-      .then(() => testExprDeletion("this", "44"))
-      .then(() => testIntegrity6())
-      .then(() => testExprFinalDeletion("ermahgerd", "44"))
-      .then(() => testIntegrity7())
-      .then(() => resumeDebuggerThenCloseAndFinish(gPanel))
-      .catch(aError => {
-        ok(false, "Got an error: " + aError.message + "\n" + aError.stack);
-      });
-
-    addExpressions();
-    callInTab(gTab, "ermahgerd");
-  });
-}
-
-function addExpressions() {
-  addExpression("this");
-  addExpression("ermahgerd");
-  addExpression("aArg");
-  addExpression("document.title");
-  addCmdExpression("document.title = 42");
-
-  is(gWatch.itemCount, 5,
-    "There should be 5 items availalble in the watch expressions view.");
-
-  is(gWatch.getItemAtIndex(4).attachment.initialExpression, "this",
-    "The first expression's initial value should be correct.");
-  is(gWatch.getItemAtIndex(3).attachment.initialExpression, "ermahgerd",
-    "The second expression's initial value should be correct.");
-  is(gWatch.getItemAtIndex(2).attachment.initialExpression, "aArg",
-    "The third expression's initial value should be correct.");
-  is(gWatch.getItemAtIndex(1).attachment.initialExpression, "document.title",
-    "The fourth expression's initial value should be correct.");
-  is(gWatch.getItemAtIndex(0).attachment.initialExpression, "document.title = 42",
-    "The fifth expression's initial value should be correct.");
-
-  is(gWatch.getItemAtIndex(4).attachment.currentExpression, "this",
-    "The first expression's current value should be correct.");
-  is(gWatch.getItemAtIndex(3).attachment.currentExpression, "ermahgerd",
-    "The second expression's current value should be correct.");
-  is(gWatch.getItemAtIndex(2).attachment.currentExpression, "aArg",
-    "The third expression's current value should be correct.");
-  is(gWatch.getItemAtIndex(1).attachment.currentExpression, "document.title",
-    "The fourth expression's current value should be correct.");
-  is(gWatch.getItemAtIndex(0).attachment.currentExpression, "document.title = 42",
-    "The fifth expression's current value should be correct.");
-}
-
-function testInitialVariablesInScope() {
-  let localScope = gVars.getScopeAtIndex(1);
-  let argVar = localScope.get("aArg");
-
-  is(argVar.visible, true,
-    "Should have the right visibility state for 'aArg'.");
-  is(argVar.name, "aArg",
-    "Should have the right name for 'aArg'.");
-  is(argVar.value.type, "undefined",
-    "Should have the right initial value for 'aArg'.");
-}
-
-function testInitialExpressionsInScope() {
-  let exprScope = gVars.getScopeAtIndex(0);
-  let thisExpr = exprScope.get("this");
-  let ermExpr = exprScope.get("ermahgerd");
-  let argExpr = exprScope.get("aArg");
-  let docExpr = exprScope.get("document.title");
-  let docExpr2 = exprScope.get("document.title = 42");
-
-  ok(exprScope,
-    "There should be a wach expressions scope in the variables view.");
-  is(exprScope.name, gL10N.getStr("watchExpressionsScopeLabel"),
-    "The scope's name should be marked as 'Watch Expressions'.");
-  is(exprScope._store.size, 5,
-    "There should be 5 evaluations available.");
-
-  is(thisExpr.visible, true,
-    "Should have the right visibility state for 'this'.");
-  is(thisExpr.target.querySelectorAll(".variables-view-delete").length, 1,
-    "Should have the one close button visible for 'this'.");
-  is(thisExpr.name, "this",
-    "Should have the right name for 'this'.");
-  is(thisExpr.value.type, "object",
-    "Should have the right value type for 'this'.");
-  is(thisExpr.value.class, "Window",
-    "Should have the right value type for 'this'.");
-
-  is(ermExpr.visible, true,
-    "Should have the right visibility state for 'ermahgerd'.");
-  is(ermExpr.target.querySelectorAll(".variables-view-delete").length, 1,
-    "Should have the one close button visible for 'ermahgerd'.");
-  is(ermExpr.name, "ermahgerd",
-    "Should have the right name for 'ermahgerd'.");
-  is(ermExpr.value.type, "object",
-    "Should have the right value type for 'ermahgerd'.");
-  is(ermExpr.value.class, "Function",
-    "Should have the right value type for 'ermahgerd'.");
-
-  is(argExpr.visible, true,
-    "Should have the right visibility state for 'aArg'.");
-  is(argExpr.target.querySelectorAll(".variables-view-delete").length, 1,
-    "Should have the one close button visible for 'aArg'.");
-  is(argExpr.name, "aArg",
-    "Should have the right name for 'aArg'.");
-  is(argExpr.value.type, "undefined",
-    "Should have the right value for 'aArg'.");
-
-  is(docExpr.visible, true,
-    "Should have the right visibility state for 'document.title'.");
-  is(docExpr.target.querySelectorAll(".variables-view-delete").length, 1,
-    "Should have the one close button visible for 'document.title'.");
-  is(docExpr.name, "document.title",
-    "Should have the right name for 'document.title'.");
-  is(docExpr.value, "42",
-    "Should have the right value for 'document.title'.");
-
-  is(docExpr2.visible, true,
-    "Should have the right visibility state for 'document.title = 42'.");
-  is(docExpr2.target.querySelectorAll(".variables-view-delete").length, 1,
-    "Should have the one close button visible for 'document.title = 42'.");
-  is(docExpr2.name, "document.title = 42",
-    "Should have the right name for 'document.title = 42'.");
-  is(docExpr2.value, 42,
-    "Should have the right value for 'document.title = 42'.");
-
-  is(gDebugger.document.querySelectorAll(".dbg-expression[hidden=true]").length, 5,
-    "There should be 5 hidden nodes in the watch expressions container.");
-  is(gDebugger.document.querySelectorAll(".dbg-expression:not([hidden=true])").length, 0,
-    "There should be 0 visible nodes in the watch expressions container.");
-}
-
-function testModification(aName, aNewValue, aNewResult, aArgResult) {
-  let exprScope = gVars.getScopeAtIndex(0);
-  let exprVar = exprScope.get(aName);
-
-  let finished = promise.all([
-    waitForDebuggerEvents(gPanel, gDebugger.EVENTS.FETCHED_SCOPES),
-    waitForDebuggerEvents(gPanel, gDebugger.EVENTS.FETCHED_WATCH_EXPRESSIONS)
-  ])
-  .then(() => {
-    let localScope = gVars.getScopeAtIndex(1);
-    let argVar = localScope.get("aArg");
-
-    is(argVar.visible, true,
-      "Should have the right visibility state for 'aArg'.");
-    is(argVar.target.querySelector(".name").getAttribute("value"), "aArg",
-      "Should have the right name for 'aArg'.");
-    is(argVar.target.querySelector(".value").getAttribute("value"), aArgResult,
-      "Should have the right new value for 'aArg'.");
-
-    let exprScope = gVars.getScopeAtIndex(0);
-    let exprOldVar = exprScope.get(aName);
-    let exprNewVar = exprScope.get(aNewValue.trim());
-
-    if (!aNewValue.trim()) {
-      ok(!exprOldVar,
-        "The old watch expression should have been removed.");
-      ok(!exprNewVar,
-        "No new watch expression should have been added.");
-    } else {
-      ok(!exprOldVar,
-        "The old watch expression should have been removed.");
-      ok(exprNewVar,
-        "The new watch expression should have been added.");
-
-      is(exprNewVar.visible, true,
-        "Should have the right visibility state for the watch expression.");
-      is(exprNewVar.target.querySelector(".name").getAttribute("value"), aNewValue.trim(),
-        "Should have the right name for the watch expression.");
-      is(exprNewVar.target.querySelector(".value").getAttribute("value"), aNewResult,
-        "Should have the right new value for the watch expression.");
-    }
-  });
-
-  let varValue = exprVar.target.querySelector(".title > .name");
-  EventUtils.sendMouseEvent({ type: "dblclick" }, varValue, gDebugger);
-
-  let varInput = exprVar.target.querySelector(".title > .element-name-input");
-  setText(varInput, aNewValue);
-  EventUtils.sendKey("RETURN", gDebugger);
-
-  return finished;
-}
-
-function testExprDeletion(aName, aArgResult) {
-  let exprScope = gVars.getScopeAtIndex(0);
-  let exprVar = exprScope.get(aName);
-
-  let finished = promise.all([
-    waitForDebuggerEvents(gPanel, gDebugger.EVENTS.FETCHED_SCOPES),
-    waitForDebuggerEvents(gPanel, gDebugger.EVENTS.FETCHED_WATCH_EXPRESSIONS)
-  ])
-  .then(() => {
-    let localScope = gVars.getScopeAtIndex(1);
-    let argVar = localScope.get("aArg");
-
-    is(argVar.visible, true,
-      "Should have the right visibility state for 'aArg'.");
-    is(argVar.target.querySelector(".name").getAttribute("value"), "aArg",
-      "Should have the right name for 'aArg'.");
-    is(argVar.target.querySelector(".value").getAttribute("value"), aArgResult,
-      "Should have the right new value for 'aArg'.");
-
-    let exprScope = gVars.getScopeAtIndex(0);
-    let exprOldVar = exprScope.get(aName);
-
-    ok(!exprOldVar,
-      "The watch expression should have been deleted.");
-  });
-
-  let varDelete = exprVar.target.querySelector(".variables-view-delete");
-  EventUtils.sendMouseEvent({ type: "click" }, varDelete, gDebugger);
-
-  return finished;
-}
-
-function testExprFinalDeletion(aName, aArgResult) {
-  let exprScope = gVars.getScopeAtIndex(0);
-  let exprVar = exprScope.get(aName);
-
-  let finished = waitForDebuggerEvents(gPanel, gDebugger.EVENTS.FETCHED_SCOPES).then(() => {
-    let localScope = gVars.getScopeAtIndex(0);
-    let argVar = localScope.get("aArg");
-
-    is(argVar.visible, true,
-      "Should have the right visibility state for 'aArg'.");
-    is(argVar.target.querySelector(".name").getAttribute("value"), "aArg",
-      "Should have the right name for 'aArg'.");
-    is(argVar.target.querySelector(".value").getAttribute("value"), aArgResult,
-      "Should have the right new value for 'aArg'.");
-
-    let exprScope = gVars.getScopeAtIndex(0);
-    let exprOldVar = exprScope.get(aName);
-
-    ok(!exprOldVar,
-      "The watch expression should have been deleted.");
-  });
-
-  let varDelete = exprVar.target.querySelector(".variables-view-delete");
-  EventUtils.sendMouseEvent({ type: "click" }, varDelete, gDebugger);
-
-  return finished;
-}
-
-function testIntegrity1() {
-  is(gDebugger.document.querySelectorAll(".dbg-expression[hidden=true]").length, 5,
-    "There should be 5 hidden nodes in the watch expressions container.");
-  is(gDebugger.document.querySelectorAll(".dbg-expression:not([hidden=true])").length, 0,
-    "There should be 0 visible nodes in the watch expressions container.");
-
-  let exprScope = gVars.getScopeAtIndex(0);
-  ok(exprScope,
-    "There should be a wach expressions scope in the variables view.");
-  is(exprScope.name, gL10N.getStr("watchExpressionsScopeLabel"),
-    "The scope's name should be marked as 'Watch Expressions'.");
-  is(exprScope._store.size, 5,
-    "There should be 5 visible evaluations available.");
-
-  is(gWatch.itemCount, 5,
-    "There should be 5 hidden expression input available.");
-  is(gWatch.getItemAtIndex(0).attachment.view.inputNode.value, "document.title = 43",
-    "The first textbox input value is not the correct one.");
-  is(gWatch.getItemAtIndex(0).attachment.currentExpression, "document.title = 43",
-    "The first textbox input value is not the correct one.");
-  is(gWatch.getItemAtIndex(1).attachment.view.inputNode.value, "document.title",
-    "The second textbox input value is not the correct one.");
-  is(gWatch.getItemAtIndex(1).attachment.currentExpression, "document.title",
-    "The second textbox input value is not the correct one.");
-  is(gWatch.getItemAtIndex(2).attachment.view.inputNode.value, "aArg",
-    "The third textbox input value is not the correct one.");
-  is(gWatch.getItemAtIndex(2).attachment.currentExpression, "aArg",
-    "The third textbox input value is not the correct one.");
-  is(gWatch.getItemAtIndex(3).attachment.view.inputNode.value, "ermahgerd",
-    "The fourth textbox input value is not the correct one.");
-  is(gWatch.getItemAtIndex(3).attachment.currentExpression, "ermahgerd",
-    "The fourth textbox input value is not the correct one.");
-  is(gWatch.getItemAtIndex(4).attachment.view.inputNode.value, "this",
-    "The fifth textbox input value is not the correct one.");
-  is(gWatch.getItemAtIndex(4).attachment.currentExpression, "this",
-    "The fifth textbox input value is not the correct one.");
-}
-
-function testIntegrity2() {
-  is(gDebugger.document.querySelectorAll(".dbg-expression[hidden=true]").length, 5,
-    "There should be 5 hidden nodes in the watch expressions container.");
-  is(gDebugger.document.querySelectorAll(".dbg-expression:not([hidden=true])").length, 0,
-    "There should be 0 visible nodes in the watch expressions container.");
-
-  let exprScope = gVars.getScopeAtIndex(0);
-  ok(exprScope,
-    "There should be a wach expressions scope in the variables view.");
-  is(exprScope.name, gL10N.getStr("watchExpressionsScopeLabel"),
-    "The scope's name should be marked as 'Watch Expressions'.");
-  is(exprScope._store.size, 5,
-    "There should be 5 visible evaluations available.");
-
-  is(gWatch.itemCount, 5,
-    "There should be 5 hidden expression input available.");
-  is(gWatch.getItemAtIndex(0).attachment.view.inputNode.value, "document.title = 43",
-    "The first textbox input value is not the correct one.");
-  is(gWatch.getItemAtIndex(0).attachment.currentExpression, "document.title = 43",
-    "The first textbox input value is not the correct one.");
-  is(gWatch.getItemAtIndex(1).attachment.view.inputNode.value, "document.title",
-    "The second textbox input value is not the correct one.");
-  is(gWatch.getItemAtIndex(1).attachment.currentExpression, "document.title",
-    "The second textbox input value is not the correct one.");
-  is(gWatch.getItemAtIndex(2).attachment.view.inputNode.value, "aArg = 44",
-    "The third textbox input value is not the correct one.");
-  is(gWatch.getItemAtIndex(2).attachment.currentExpression, "aArg = 44",
-    "The third textbox input value is not the correct one.");
-  is(gWatch.getItemAtIndex(3).attachment.view.inputNode.value, "ermahgerd",
-    "The fourth textbox input value is not the correct one.");
-  is(gWatch.getItemAtIndex(3).attachment.currentExpression, "ermahgerd",
-    "The fourth textbox input value is not the correct one.");
-  is(gWatch.getItemAtIndex(4).attachment.view.inputNode.value, "this",
-    "The fifth textbox input value is not the correct one.");
-  is(gWatch.getItemAtIndex(4).attachment.currentExpression, "this",
-    "The fifth textbox input value is not the correct one.");
-}
-
-function testIntegrity3() {
-  is(gDebugger.document.querySelectorAll(".dbg-expression[hidden=true]").length, 4,
-    "There should be 4 hidden nodes in the watch expressions container.");
-  is(gDebugger.document.querySelectorAll(".dbg-expression:not([hidden=true])").length, 0,
-    "There should be 0 visible nodes in the watch expressions container.");
-
-  let exprScope = gVars.getScopeAtIndex(0);
-  ok(exprScope,
-    "There should be a wach expressions scope in the variables view.");
-  is(exprScope.name, gL10N.getStr("watchExpressionsScopeLabel"),
-    "The scope's name should be marked as 'Watch Expressions'.");
-  is(exprScope._store.size, 4,
-    "There should be 4 visible evaluations available.");
-
-  is(gWatch.itemCount, 4,
-    "There should be 4 hidden expression input available.");
-  is(gWatch.getItemAtIndex(0).attachment.view.inputNode.value, "document.title = 43",
-    "The first textbox input value is not the correct one.");
-  is(gWatch.getItemAtIndex(0).attachment.currentExpression, "document.title = 43",
-    "The first textbox input value is not the correct one.");
-  is(gWatch.getItemAtIndex(1).attachment.view.inputNode.value, "document.title",
-    "The second textbox input value is not the correct one.");
-  is(gWatch.getItemAtIndex(1).attachment.currentExpression, "document.title",
-    "The second textbox input value is not the correct one.");
-  is(gWatch.getItemAtIndex(2).attachment.view.inputNode.value, "ermahgerd",
-    "The third textbox input value is not the correct one.");
-  is(gWatch.getItemAtIndex(2).attachment.currentExpression, "ermahgerd",
-    "The third textbox input value is not the correct one.");
-  is(gWatch.getItemAtIndex(3).attachment.view.inputNode.value, "this",
-    "The fourth textbox input value is not the correct one.");
-  is(gWatch.getItemAtIndex(3).attachment.currentExpression, "this",
-    "The fourth textbox input value is not the correct one.");
-}
-
-function testIntegrity4() {
-  is(gDebugger.document.querySelectorAll(".dbg-expression[hidden=true]").length, 3,
-    "There should be 3 hidden nodes in the watch expressions container.");
-  is(gDebugger.document.querySelectorAll(".dbg-expression:not([hidden=true])").length, 0,
-    "There should be 0 visible nodes in the watch expressions container.");
-
-  let exprScope = gVars.getScopeAtIndex(0);
-  ok(exprScope,
-    "There should be a wach expressions scope in the variables view.");
-  is(exprScope.name, gL10N.getStr("watchExpressionsScopeLabel"),
-    "The scope's name should be marked as 'Watch Expressions'.");
-  is(exprScope._store.size, 3,
-    "There should be 3 visible evaluations available.");
-
-  is(gWatch.itemCount, 3,
-    "There should be 3 hidden expression input available.");
-  is(gWatch.getItemAtIndex(0).attachment.view.inputNode.value, "document.title",
-    "The first textbox input value is not the correct one.");
-  is(gWatch.getItemAtIndex(0).attachment.currentExpression, "document.title",
-    "The first textbox input value is not the correct one.");
-  is(gWatch.getItemAtIndex(1).attachment.view.inputNode.value, "ermahgerd",
-    "The second textbox input value is not the correct one.");
-  is(gWatch.getItemAtIndex(1).attachment.currentExpression, "ermahgerd",
-    "The second textbox input value is not the correct one.");
-  is(gWatch.getItemAtIndex(2).attachment.view.inputNode.value, "this",
-    "The third textbox input value is not the correct one.");
-  is(gWatch.getItemAtIndex(2).attachment.currentExpression, "this",
-    "The third textbox input value is not the correct one.");
-}
-
-function testIntegrity5() {
-  is(gDebugger.document.querySelectorAll(".dbg-expression[hidden=true]").length, 2,
-    "There should be 2 hidden nodes in the watch expressions container.");
-  is(gDebugger.document.querySelectorAll(".dbg-expression:not([hidden=true])").length, 0,
-    "There should be 0 visible nodes in the watch expressions container.");
-
-  let exprScope = gVars.getScopeAtIndex(0);
-  ok(exprScope,
-    "There should be a wach expressions scope in the variables view.");
-  is(exprScope.name, gL10N.getStr("watchExpressionsScopeLabel"),
-    "The scope's name should be marked as 'Watch Expressions'.");
-  is(exprScope._store.size, 2,
-    "There should be 2 visible evaluations available.");
-
-  is(gWatch.itemCount, 2,
-    "There should be 2 hidden expression input available.");
-  is(gWatch.getItemAtIndex(0).attachment.view.inputNode.value, "ermahgerd",
-    "The first textbox input value is not the correct one.");
-  is(gWatch.getItemAtIndex(0).attachment.currentExpression, "ermahgerd",
-    "The first textbox input value is not the correct one.");
-  is(gWatch.getItemAtIndex(1).attachment.view.inputNode.value, "this",
-    "The second textbox input value is not the correct one.");
-  is(gWatch.getItemAtIndex(1).attachment.currentExpression, "this",
-    "The second textbox input value is not the correct one.");
-}
-
-function testIntegrity6() {
-  is(gDebugger.document.querySelectorAll(".dbg-expression[hidden=true]").length, 1,
-    "There should be 1 hidden nodes in the watch expressions container.");
-  is(gDebugger.document.querySelectorAll(".dbg-expression:not([hidden=true])").length, 0,
-    "There should be 0 visible nodes in the watch expressions container.");
-
-  let exprScope = gVars.getScopeAtIndex(0);
-  ok(exprScope,
-    "There should be a wach expressions scope in the variables view.");
-  is(exprScope.name, gL10N.getStr("watchExpressionsScopeLabel"),
-    "The scope's name should be marked as 'Watch Expressions'.");
-  is(exprScope._store.size, 1,
-    "There should be 1 visible evaluation available.");
-
-  is(gWatch.itemCount, 1,
-    "There should be 1 hidden expression input available.");
-  is(gWatch.getItemAtIndex(0).attachment.view.inputNode.value, "ermahgerd",
-    "The first textbox input value is not the correct one.");
-  is(gWatch.getItemAtIndex(0).attachment.currentExpression, "ermahgerd",
-    "The first textbox input value is not the correct one.");
-}
-
-function testIntegrity7() {
-  is(gDebugger.document.querySelectorAll(".dbg-expression[hidden=true]").length, 0,
-    "There should be 0 hidden nodes in the watch expressions container.");
-  is(gDebugger.document.querySelectorAll(".dbg-expression:not([hidden=true])").length, 0,
-    "There should be 0 visible nodes in the watch expressions container.");
-
-  let localScope = gVars.getScopeAtIndex(0);
-  ok(localScope,
-    "There should be a local scope in the variables view.");
-  isnot(localScope.name, gL10N.getStr("watchExpressionsScopeLabel"),
-    "The scope's name should not be marked as 'Watch Expressions'.");
-  isnot(localScope._store.size, 0,
-    "There should be some variables available.");
-
-  is(gWatch.itemCount, 0,
-    "The watch expressions container should be empty.");
-}
-
-function addExpression(aString) {
-  gWatch.addExpression(aString);
-  gEditor.focus();
-}
-
-function addCmdExpression(aString) {
-  gWatch._onCmdAddExpression(aString);
-  gEditor.focus();
-}
-
-registerCleanupFunction(function () {
-  gTab = null;
-  gPanel = null;
-  gDebugger = null;
-  gL10N = null;
-  gEditor = null;
-  gVars = null;
-  gWatch = null;
-});
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-filter-01.js
+++ /dev/null
@@ -1,241 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Make sure that the variables view correctly filters nodes by name.
- */
-
-const TAB_URL = EXAMPLE_URL + "doc_with-frame.html";
-
-var gTab, gPanel, gDebugger;
-var gVariables, gSearchBox;
-
-function test() {
-  // Debug test slaves are quite slow at this test.
-  requestLongerTimeout(4);
-
-  let options = {
-    source: TAB_URL,
-    line: 1
-  };
-  initDebugger(TAB_URL, options).then(([aTab,, aPanel]) => {
-    gTab = aTab;
-    gPanel = aPanel;
-    gDebugger = gPanel.panelWin;
-    gVariables = gDebugger.DebuggerView.Variables;
-
-    gVariables._enableSearch();
-    gSearchBox = gVariables._searchboxNode;
-
-    // The first 'with' scope should be expanded by default, but the
-    // variables haven't been fetched yet. This is how 'with' scopes work.
-    promise.all([
-      waitForCaretAndScopes(gPanel, 22),
-      waitForDebuggerEvents(gPanel, gDebugger.EVENTS.FETCHED_VARIABLES)
-    ]).then(prepareVariablesAndProperties)
-      .then(testVariablesAndPropertiesFiltering)
-      .then(() => resumeDebuggerThenCloseAndFinish(gPanel))
-      .catch(aError => {
-        ok(false, "Got an error: " + aError.message + "\n" + aError.stack);
-      });
-
-    generateMouseClickInTab(gTab, "content.document.querySelector('button')");
-  });
-}
-
-function testVariablesAndPropertiesFiltering() {
-  let localScope = gVariables.getScopeAtIndex(0);
-  let withScope = gVariables.getScopeAtIndex(1);
-  let functionScope = gVariables.getScopeAtIndex(2);
-  let globalLexicalScope = gVariables.getScopeAtIndex(3);
-  let globalScope = gVariables.getScopeAtIndex(4);
-  let protoVar = localScope.get("__proto__");
-  let constrVar = protoVar.get("constructor");
-  let proto2Var = constrVar.get("__proto__");
-  let constr2Var = proto2Var.get("constructor");
-
-  function testFiltered() {
-    is(localScope.expanded, true,
-      "The localScope should be expanded.");
-    is(withScope.expanded, true,
-      "The withScope should be expanded.");
-    is(functionScope.expanded, true,
-      "The functionScope should be expanded.");
-    is(globalLexicalScope.expanded, true,
-      "The globalLexicalScope should be expanded.");
-    is(globalScope.expanded, true,
-      "The globalScope should be expanded.");
-
-    is(protoVar.expanded, true,
-      "The protoVar should be expanded.");
-    is(constrVar.expanded, true,
-      "The constrVar should be expanded.");
-    is(proto2Var.expanded, true,
-      "The proto2Var should be expanded.");
-    is(constr2Var.expanded, true,
-      "The constr2Var should be expanded.");
-
-    is(localScope.target.querySelectorAll(".variables-view-variable:not([unmatched])").length, 1,
-      "There should be 1 variable displayed in the local scope.");
-    is(withScope.target.querySelectorAll(".variables-view-variable:not([unmatched])").length, 0,
-      "There should be 0 variables displayed in the with scope.");
-    is(functionScope.target.querySelectorAll(".variables-view-variable:not([unmatched])").length, 0,
-      "There should be 0 variables displayed in the function scope.");
-    is(globalLexicalScope.target.querySelectorAll(".variables-view-variable:not([unmatched])").length, 0,
-      "There should be 0 variables displayed in the global lexical scope.");
-    is(globalScope.target.querySelectorAll(".variables-view-variable:not([unmatched])").length, 0,
-      "There should be 0 variables displayed in the global scope.");
-
-    is(withScope.target.querySelectorAll(".variables-view-property:not([unmatched])").length, 0,
-      "There should be 0 properties displayed in the with scope.");
-    is(functionScope.target.querySelectorAll(".variables-view-property:not([unmatched])").length, 0,
-      "There should be 0 properties displayed in the function scope.");
-    is(globalLexicalScope.target.querySelectorAll(".variables-view-property:not([unmatched])").length, 0,
-      "There should be 0 properties displayed in the global lexical scope.");
-    is(globalScope.target.querySelectorAll(".variables-view-property:not([unmatched])").length, 0,
-      "There should be 0 properties displayed in the global scope.");
-
-    is(localScope.target.querySelectorAll(".variables-view-variable:not([unmatched]) > .title > .name")[0].getAttribute("value"),
-      "__proto__", "The only inner variable displayed should be '__proto__'");
-    is(localScope.target.querySelectorAll(".variables-view-property:not([unmatched]) > .title > .name")[0].getAttribute("value"),
-      "constructor", "The first inner property displayed should be 'constructor'");
-    is(localScope.target.querySelectorAll(".variables-view-property:not([unmatched]) > .title > .name")[1].getAttribute("value"),
-      "__proto__", "The second inner property displayed should be '__proto__'");
-    is(localScope.target.querySelectorAll(".variables-view-property:not([unmatched]) > .title > .name")[2].getAttribute("value"),
-      "constructor", "The third inner property displayed should be 'constructor'");
-  }
-
-  function firstFilter() {
-    let expanded = once(gVariables, "fetched");
-    typeText(gSearchBox, "constructor");
-    gSearchBox.doCommand();
-    return expanded.then(testFiltered);
-  }
-
-  function secondFilter() {
-    localScope.collapse();
-    withScope.collapse();
-    functionScope.collapse();
-    globalLexicalScope.collapse();
-    globalScope.collapse();
-    protoVar.collapse();
-    constrVar.collapse();
-    proto2Var.collapse();
-    constr2Var.collapse();
-
-    is(localScope.expanded, false,
-      "The localScope should not be expanded.");
-    is(withScope.expanded, false,
-      "The withScope should not be expanded.");
-    is(functionScope.expanded, false,
-      "The functionScope should not be expanded.");
-    is(globalLexicalScope.expanded, false,
-      "The globalLexicalScope should not be expanded.");
-    is(globalScope.expanded, false,
-      "The globalScope should not be expanded.");
-
-    is(protoVar.expanded, false,
-      "The protoVar should not be expanded.");
-    is(constrVar.expanded, false,
-      "The constrVar should not be expanded.");
-    is(proto2Var.expanded, false,
-      "The proto2Var should not be expanded.");
-    is(constr2Var.expanded, false,
-      "The constr2Var should not be expanded.");
-
-    let expanded = once(gVariables, "fetched");
-    clearText(gSearchBox);
-    typeText(gSearchBox, "constructor");
-    expanded.then(testFiltered);
-  }
-
-  firstFilter().then(secondFilter);
-}
-
-function prepareVariablesAndProperties() {
-  let deferred = promise.defer();
-
-  let localScope = gVariables.getScopeAtIndex(0);
-  let withScope = gVariables.getScopeAtIndex(1);
-  let functionScope = gVariables.getScopeAtIndex(2);
-  let globalLexicalScope = gVariables.getScopeAtIndex(3);
-  let globalScope = gVariables.getScopeAtIndex(4);
-
-  is(localScope.expanded, true,
-    "The localScope should be expanded.");
-  is(withScope.expanded, false,
-    "The withScope should not be expanded yet.");
-  is(functionScope.expanded, false,
-     "The functionScope should not be expanded yet.");
-  is(globalLexicalScope.expanded, false,
-     "The globalLexicalScope should not be expanded yet.");
-  is(globalScope.expanded, false,
-    "The globalScope should not be expanded yet.");
-
-  // Wait for only two events to be triggered, because the Function scope is
-  // an environment to which scope arguments and variables are already attached.
-  waitForDebuggerEvents(gPanel, gDebugger.EVENTS.FETCHED_VARIABLES, 2).then(() => {
-    is(localScope.expanded, true,
-      "The localScope should now be expanded.");
-    is(withScope.expanded, true,
-      "The withScope should now be expanded.");
-    is(functionScope.expanded, true,
-       "The functionScope should now be expanded.");
-    is(globalLexicalScope.expanded, true,
-       "The globalLexicalScope should be expanded.");
-    is(globalScope.expanded, true,
-      "The globalScope should now be expanded.");
-
-    let protoVar = localScope.get("__proto__");
-
-    waitForDebuggerEvents(gPanel, gDebugger.EVENTS.FETCHED_PROPERTIES, 1).then(() => {
-      let constrVar = protoVar.get("constructor");
-
-      waitForDebuggerEvents(gPanel, gDebugger.EVENTS.FETCHED_PROPERTIES, 1).then(() => {
-        let proto2Var = constrVar.get("__proto__");
-
-        waitForDebuggerEvents(gPanel, gDebugger.EVENTS.FETCHED_PROPERTIES, 1).then(() => {
-          let constr2Var = proto2Var.get("constructor");
-
-          waitForDebuggerEvents(gPanel, gDebugger.EVENTS.FETCHED_PROPERTIES, 1).then(() => {
-            is(protoVar.expanded, true,
-              "The local scope '__proto__' should be expanded.");
-            is(constrVar.expanded, true,
-              "The local scope '__proto__.constructor' should be expanded.");
-            is(proto2Var.expanded, true,
-              "The local scope '__proto__.constructor.__proto__' should be expanded.");
-            is(constr2Var.expanded, true,
-              "The local scope '__proto__.constructor.__proto__.constructor' should be expanded.");
-
-            deferred.resolve();
-          });
-
-          constr2Var.expand();
-        });
-
-        proto2Var.expand();
-      });
-
-      constrVar.expand();
-    });
-
-    protoVar.expand();
-  });
-
-  withScope.expand();
-  functionScope.expand();
-  globalLexicalScope.expand();
-  globalScope.expand();
-
-  return deferred.promise;
-}
-
-registerCleanupFunction(function () {
-  gTab = null;
-  gPanel = null;
-  gDebugger = null;
-  gVariables = null;
-  gSearchBox = null;
-});
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-filter-02.js
+++ /dev/null
@@ -1,249 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Make sure that the variables view correctly filters nodes by value.
- */
-
-const TAB_URL = EXAMPLE_URL + "doc_with-frame.html";
-
-var gTab, gPanel, gDebugger;
-var gVariables, gSearchBox;
-
-function test() {
-  // Debug test slaves are quite slow at this test.
-  requestLongerTimeout(4);
-
-  let options = {
-    source: TAB_URL,
-    line: 1
-  };
-  initDebugger(TAB_URL, options).then(([aTab,, aPanel]) => {
-    gTab = aTab;
-    gPanel = aPanel;
-    gDebugger = gPanel.panelWin;
-    gVariables = gDebugger.DebuggerView.Variables;
-
-    gVariables._enableSearch();
-    gSearchBox = gVariables._searchboxNode;
-
-    // The first 'with' scope should be expanded by default, but the
-    // variables haven't been fetched yet. This is how 'with' scopes work.
-    promise.all([
-      waitForCaretAndScopes(gPanel, 22),
-      waitForDebuggerEvents(gPanel, gDebugger.EVENTS.FETCHED_VARIABLES)
-    ]).then(prepareVariablesAndProperties)
-      .then(testVariablesAndPropertiesFiltering)
-      .then(() => resumeDebuggerThenCloseAndFinish(gPanel))
-      .catch(aError => {
-        ok(false, "Got an error: " + aError.message + "\n" + aError.stack);
-      });
-
-    generateMouseClickInTab(gTab, "content.document.querySelector('button')");
-  });
-}
-
-function testVariablesAndPropertiesFiltering() {
-  let localScope = gVariables.getScopeAtIndex(0);
-  let withScope = gVariables.getScopeAtIndex(1);
-  let functionScope = gVariables.getScopeAtIndex(2);
-  let globalLexicalScope = gVariables.getScopeAtIndex(3);
-  let globalScope = gVariables.getScopeAtIndex(4);
-  let protoVar = localScope.get("__proto__");
-  let constrVar = protoVar.get("constructor");
-  let proto2Var = constrVar.get("__proto__");
-  let constr2Var = proto2Var.get("constructor");
-
-  function testFiltered() {
-    is(localScope.expanded, true,
-      "The localScope should be expanded.");
-    is(withScope.expanded, true,
-      "The withScope should be expanded.");
-    is(functionScope.expanded, true,
-      "The functionScope should be expanded.");
-    is(globalLexicalScope.expanded, true,
-      "The globalScope should be expanded.");
-    is(globalScope.expanded, true,
-      "The globalScope should be expanded.");
-
-    is(protoVar.expanded, true,
-      "The protoVar should be expanded.");
-    is(constrVar.expanded, true,
-      "The constrVar should be expanded.");
-    is(proto2Var.expanded, true,
-      "The proto2Var should be expanded.");
-    is(constr2Var.expanded, true,
-      "The constr2Var should be expanded.");
-
-    is(localScope.target.querySelectorAll(".variables-view-variable:not([unmatched])").length, 1,
-      "There should be 1 variable displayed in the local scope.");
-    is(withScope.target.querySelectorAll(".variables-view-variable:not([unmatched])").length, 0,
-      "There should be 0 variables displayed in the with scope.");
-    is(functionScope.target.querySelectorAll(".variables-view-variable:not([unmatched])").length, 0,
-      "There should be 0 variables displayed in the function scope.");
-    is(globalLexicalScope.target.querySelectorAll(".variables-view-variable:not([unmatched])").length, 0,
-      "There should be no variables displayed in the global lexical scope.");
-    is(globalScope.target.querySelectorAll(".variables-view-variable:not([unmatched])").length, 0,
-      "There should be no variables displayed in the global scope.");
-
-    is(localScope.target.querySelectorAll(".variables-view-property:not([unmatched])").length, 4,
-      "There should be 4 properties displayed in the local scope.");
-    is(withScope.target.querySelectorAll(".variables-view-property:not([unmatched])").length, 0,
-      "There should be 0 properties displayed in the with scope.");
-    is(functionScope.target.querySelectorAll(".variables-view-property:not([unmatched])").length, 0,
-      "There should be 0 properties displayed in the function scope.");
-    is(globalLexicalScope.target.querySelectorAll(".variables-view-property:not([unmatched])").length, 0,
-      "There should be 0 properties displayed in the global lexical scope.");
-    is(globalScope.target.querySelectorAll(".variables-view-property:not([unmatched])").length, 0,
-      "There should be 0 properties displayed in the global scope.");
-
-    is(localScope.target.querySelectorAll(".variables-view-variable:not([unmatched]) > .title > .name")[0].getAttribute("value"),
-      "__proto__", "The only inner variable displayed should be '__proto__'");
-    is(localScope.target.querySelectorAll(".variables-view-property:not([unmatched]) > .title > .name")[0].getAttribute("value"),
-      "constructor", "The first inner property displayed should be 'constructor'");
-    is(localScope.target.querySelectorAll(".variables-view-property:not([unmatched]) > .title > .name")[1].getAttribute("value"),
-      "__proto__", "The second inner property displayed should be '__proto__'");
-    is(localScope.target.querySelectorAll(".variables-view-property:not([unmatched]) > .title > .name")[2].getAttribute("value"),
-      "constructor", "The third inner property displayed should be 'constructor'");
-
-    is(localScope.target.querySelectorAll(".variables-view-property:not([unmatched]) > .title > .name")[3].getAttribute("value"),
-      "name", "The fourth inner property displayed should be 'name'");
-    is(localScope.target.querySelectorAll(".variables-view-property:not([unmatched]) > .title > .value")[3].getAttribute("value"),
-      "\"Function\"", "The fourth inner property displayed should be '\"Function\"'");
-  }
-
-  function firstFilter() {
-    let expanded = once(gVariables, "fetched");
-    typeText(gSearchBox, "\"Function\"");
-    gSearchBox.doCommand();
-    return expanded.then(testFiltered);
-  }
-
-  function secondFilter() {
-    localScope.collapse();
-    withScope.collapse();
-    functionScope.collapse();
-    globalLexicalScope.collapse();
-    globalScope.collapse();
-    protoVar.collapse();
-    constrVar.collapse();
-    proto2Var.collapse();
-    constr2Var.collapse();
-
-    is(localScope.expanded, false,
-      "The localScope should not be expanded.");
-    is(withScope.expanded, false,
-      "The withScope should not be expanded.");
-    is(functionScope.expanded, false,
-      "The functionScope should not be expanded.");
-    is(globalLexicalScope.expanded, false,
-      "The globalScope should not be expanded.");
-    is(globalScope.expanded, false,
-      "The globalScope should not be expanded.");
-
-    is(protoVar.expanded, false,
-      "The protoVar should not be expanded.");
-    is(constrVar.expanded, false,
-      "The constrVar should not be expanded.");
-    is(proto2Var.expanded, false,
-      "The proto2Var should not be expanded.");
-    is(constr2Var.expanded, false,
-      "The constr2Var should not be expanded.");
-
-    backspaceText(gSearchBox, 10);
-    let expanded = once(gVariables, "fetched");
-    typeText(gSearchBox, "\"Function\"");
-    gSearchBox.doCommand();
-    expanded.then(testFiltered);
-  }
-
-  firstFilter().then(secondFilter);
-}
-
-function prepareVariablesAndProperties() {
-  let deferred = promise.defer();
-
-  let localScope = gVariables.getScopeAtIndex(0);
-  let withScope = gVariables.getScopeAtIndex(1);
-  let functionScope = gVariables.getScopeAtIndex(2);
-  let globalLexicalScope = gVariables.getScopeAtIndex(3);
-  let globalScope = gVariables.getScopeAtIndex(4);
-
-  is(localScope.expanded, true,
-    "The localScope should be expanded.");
-  is(withScope.expanded, false,
-    "The withScope should not be expanded yet.");
-  is(functionScope.expanded, false,
-    "The functionScope should not be expanded yet.");
-  is(globalLexicalScope.expanded, false,
-    "The globalScope should not be expanded yet.");
-  is(globalScope.expanded, false,
-    "The globalScope should not be expanded yet.");
-
-  // Wait for only two events to be triggered, because the Function scope is
-  // an environment to which scope arguments and variables are already attached.
-  waitForDebuggerEvents(gPanel, gDebugger.EVENTS.FETCHED_VARIABLES, 2).then(() => {
-    is(localScope.expanded, true,
-      "The localScope should now be expanded.");
-    is(withScope.expanded, true,
-      "The withScope should now be expanded.");
-    is(functionScope.expanded, true,
-      "The functionScope should now be expanded.");
-    is(globalLexicalScope.expanded, true,
-      "The globalScope should now be expanded.");
-    is(globalScope.expanded, true,
-      "The globalScope should now be expanded.");
-
-    let protoVar = localScope.get("__proto__");
-
-    waitForDebuggerEvents(gPanel, gDebugger.EVENTS.FETCHED_PROPERTIES, 1).then(() => {
-      let constrVar = protoVar.get("constructor");
-
-      waitForDebuggerEvents(gPanel, gDebugger.EVENTS.FETCHED_PROPERTIES, 1).then(() => {
-        let proto2Var = constrVar.get("__proto__");
-
-        waitForDebuggerEvents(gPanel, gDebugger.EVENTS.FETCHED_PROPERTIES, 1).then(() => {
-          let constr2Var = proto2Var.get("constructor");
-
-          waitForDebuggerEvents(gPanel, gDebugger.EVENTS.FETCHED_PROPERTIES, 1).then(() => {
-            is(protoVar.expanded, true,
-              "The local scope '__proto__' should be expanded.");
-            is(constrVar.expanded, true,
-              "The local scope '__proto__.constructor' should be expanded.");
-            is(proto2Var.expanded, true,
-              "The local scope '__proto__.constructor.__proto__' should be expanded.");
-            is(constr2Var.expanded, true,
-              "The local scope '__proto__.constructor.__proto__.constructor' should be expanded.");
-
-            deferred.resolve();
-          });
-
-          constr2Var.expand();
-        });
-
-        proto2Var.expand();
-      });
-
-      constrVar.expand();
-    });
-
-    protoVar.expand();
-  });
-
-  withScope.expand();
-  functionScope.expand();
-  globalLexicalScope.expand();
-  globalScope.expand();
-
-  return deferred.promise;
-}
-
-registerCleanupFunction(function () {
-  gTab = null;
-  gPanel = null;
-  gDebugger = null;
-  gVariables = null;
-  gSearchBox = null;
-});
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-filter-03.js
+++ /dev/null
@@ -1,178 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Make sure that the variables view correctly filters nodes when triggered
- * from the debugger's searchbox via an operator.
- */
-
-const TAB_URL = EXAMPLE_URL + "doc_with-frame.html";
-
-var gTab, gPanel, gDebugger;
-var gVariables, gSearchBox;
-
-function test() {
-  // Debug test slaves are a bit slow at this test.
-  requestLongerTimeout(2);
-
-  let options = {
-    source: TAB_URL,
-    line: 1
-  };
-  initDebugger(TAB_URL, options).then(([aTab,, aPanel]) => {
-    gTab = aTab;
-    gPanel = aPanel;
-    gDebugger = gPanel.panelWin;
-    gVariables = gDebugger.DebuggerView.Variables;
-    gSearchBox = gDebugger.DebuggerView.Filtering._searchbox;
-
-    // The first 'with' scope should be expanded by default, but the
-    // variables haven't been fetched yet. This is how 'with' scopes work.
-    promise.all([
-      waitForCaretAndScopes(gPanel, 22),
-      waitForDebuggerEvents(gPanel, gDebugger.EVENTS.FETCHED_VARIABLES)
-    ]).then(prepareVariablesAndProperties)
-      .then(testVariablesAndPropertiesFiltering)
-      .then(() => resumeDebuggerThenCloseAndFinish(gPanel))
-      .catch(aError => {
-        ok(false, "Got an error: " + aError.message + "\n" + aError.stack);
-      });
-
-    generateMouseClickInTab(gTab, "content.document.querySelector('button')");
-  });
-}
-
-function testVariablesAndPropertiesFiltering() {
-  let localScope = gVariables.getScopeAtIndex(0);
-  let withScope = gVariables.getScopeAtIndex(1);
-  let functionScope = gVariables.getScopeAtIndex(2);
-  let globalLexicalScope = gVariables.getScopeAtIndex(3);
-  let globalScope = gVariables.getScopeAtIndex(4);
-
-  function testFiltered() {
-    is(localScope.expanded, true,
-      "The localScope should be expanded.");
-    is(withScope.expanded, true,
-      "The withScope should be expanded.");
-    is(functionScope.expanded, true,
-      "The functionScope should be expanded.");
-    is(globalLexicalScope.expanded, true,
-      "The globalScope should be expanded.");
-    is(globalScope.expanded, true,
-      "The globalScope should be expanded.");
-
-    is(localScope.target.querySelectorAll(".variables-view-variable:not([unmatched])").length, 1,
-      "There should be 1 variable displayed in the local scope.");
-    is(withScope.target.querySelectorAll(".variables-view-variable:not([unmatched])").length, 0,
-      "There should be 0 variables displayed in the with scope.");
-    is(functionScope.target.querySelectorAll(".variables-view-variable:not([unmatched])").length, 0,
-      "There should be 0 variables displayed in the function scope.");
-    is(globalLexicalScope.target.querySelectorAll(".variables-view-variable:not([unmatched])").length, 0,
-      "There should be 0 variables displayed in the global scope.");
-    is(globalScope.target.querySelectorAll(".variables-view-variable:not([unmatched])").length, 0,
-      "There should be 0 variables displayed in the global scope.");
-
-    is(localScope.target.querySelectorAll(".variables-view-property:not([unmatched])").length, 0,
-      "There should be 0 properties displayed in the local scope.");
-    is(withScope.target.querySelectorAll(".variables-view-property:not([unmatched])").length, 0,
-      "There should be 0 properties displayed in the with scope.");
-    is(functionScope.target.querySelectorAll(".variables-view-property:not([unmatched])").length, 0,
-      "There should be 0 properties displayed in the function scope.");
-    is(globalLexicalScope.target.querySelectorAll(".variables-view-property:not([unmatched])").length, 0,
-      "There should be 0 properties displayed in the global scope.");
-    is(globalScope.target.querySelectorAll(".variables-view-property:not([unmatched])").length, 0,
-      "There should be 0 properties displayed in the global scope.");
-  }
-
-  function firstFilter() {
-    typeText(gSearchBox, "*alpha");
-    testFiltered("alpha");
-
-    is(localScope.target.querySelectorAll(".variables-view-variable:not([unmatched]) > .title > .name")[0].getAttribute("value"),
-      "alpha", "The only inner variable displayed should be 'alpha'");
-  }
-
-  function secondFilter() {
-    localScope.collapse();
-    withScope.collapse();
-    functionScope.collapse();
-    globalLexicalScope.collapse();
-    globalScope.collapse();
-
-    is(localScope.expanded, false,
-      "The localScope should not be expanded.");
-    is(withScope.expanded, false,
-      "The withScope should not be expanded.");
-    is(functionScope.expanded, false,
-      "The functionScope should not be expanded.");
-    is(globalLexicalScope.expanded, false,
-      "The globalScope should not be expanded.");
-    is(globalScope.expanded, false,
-      "The globalScope should not be expanded.");
-
-    backspaceText(gSearchBox, 6);
-    typeText(gSearchBox, "*beta");
-    testFiltered("beta");
-
-    is(localScope.target.querySelectorAll(".variables-view-variable:not([unmatched]) > .title > .name")[0].getAttribute("value"),
-      "beta", "The only inner variable displayed should be 'beta'");
-  }
-
-  firstFilter();
-  secondFilter();
-}
-
-function prepareVariablesAndProperties() {
-  let deferred = promise.defer();
-
-  let localScope = gVariables.getScopeAtIndex(0);
-  let withScope = gVariables.getScopeAtIndex(1);
-  let functionScope = gVariables.getScopeAtIndex(2);
-  let globalLexicalScope = gVariables.getScopeAtIndex(3);
-  let globalScope = gVariables.getScopeAtIndex(4);
-
-  is(localScope.expanded, true,
-    "The localScope should be expanded.");
-  is(withScope.expanded, false,
-    "The withScope should not be expanded yet.");
-  is(functionScope.expanded, false,
-    "The functionScope should not be expanded yet.");
-  is(globalLexicalScope.expanded, false,
-    "The globalScope should not be expanded yet.");
-  is(globalScope.expanded, false,
-    "The globalScope should not be expanded yet.");
-
-  // Wait for only two events to be triggered, because the Function scope is
-  // an environment to which scope arguments and variables are already attached.
-  waitForDebuggerEvents(gPanel, gDebugger.EVENTS.FETCHED_VARIABLES, 2).then(() => {
-    is(localScope.expanded, true,
-      "The localScope should now be expanded.");
-    is(withScope.expanded, true,
-      "The withScope should now be expanded.");
-    is(functionScope.expanded, true,
-      "The functionScope should now be expanded.");
-    is(globalLexicalScope.expanded, true,
-      "The globalScope should now be expanded.");
-    is(globalScope.expanded, true,
-      "The globalScope should now be expanded.");
-
-    deferred.resolve();
-  });
-
-  withScope.expand();
-  functionScope.expand();
-  globalLexicalScope.expand();
-  globalScope.expand();
-
-  return deferred.promise;
-}
-
-registerCleanupFunction(function () {
-  gTab = null;
-  gPanel = null;
-  gDebugger = null;
-  gVariables = null;
-  gSearchBox = null;
-});
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-filter-04.js
+++ /dev/null
@@ -1,243 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Make sure that the variables view correctly shows/hides nodes when various
- * keyboard shortcuts are pressed in the debugger's searchbox.
- */
-
-const TAB_URL = EXAMPLE_URL + "doc_with-frame.html";
-
-var gTab, gPanel, gDebugger;
-var gEditor, gVariables, gSearchBox;
-
-function test() {
-  // Debug test slaves are a bit slow at this test.
-  requestLongerTimeout(2);
-
-  let options = {
-    source: TAB_URL,
-    line: 1
-  };
-  initDebugger(TAB_URL, options).then(([aTab,, aPanel]) => {
-    gTab = aTab;
-    gPanel = aPanel;
-    gDebugger = gPanel.panelWin;
-    gEditor = gDebugger.DebuggerView.editor;
-    gVariables = gDebugger.DebuggerView.Variables;
-    gSearchBox = gDebugger.DebuggerView.Filtering._searchbox;
-
-    // The first 'with' scope should be expanded by default, but the
-    // variables haven't been fetched yet. This is how 'with' scopes work.
-    promise.all([
-      waitForCaretAndScopes(gPanel, 22),
-      waitForDebuggerEvents(gPanel, gDebugger.EVENTS.FETCHED_VARIABLES)
-    ]).then(prepareVariablesAndProperties)
-      .then(testVariablesAndPropertiesFiltering)
-      .then(() => resumeDebuggerThenCloseAndFinish(gPanel))
-      .catch(aError => {
-        ok(false, "Got an error: " + aError.message + "\n" + aError.stack);
-      });
-
-    generateMouseClickInTab(gTab, "content.document.querySelector('button')");
-  });
-}
-
-function testVariablesAndPropertiesFiltering() {
-  let localScope = gVariables.getScopeAtIndex(0);
-  let withScope = gVariables.getScopeAtIndex(1);
-  let functionScope = gVariables.getScopeAtIndex(2);
-  let globalLexicalScope = gVariables.getScopeAtIndex(3);
-  let globalScope = gVariables.getScopeAtIndex(4);
-  let step = 0;
-
-  let tests = [
-    function () {
-      assertExpansion([true, false, false, false, false]);
-      EventUtils.sendKey("RETURN", gDebugger);
-    },
-    function () {
-      assertExpansion([true, false, false, false, false]);
-      EventUtils.sendKey("RETURN", gDebugger);
-    },
-    function () {
-      assertExpansion([true, false, false, false, false]);
-      gEditor.focus();
-    },
-    function () {
-      assertExpansion([true, false, false, false, false]);
-      typeText(gSearchBox, "*");
-    },
-    function () {
-      assertExpansion([true, true, true, true, true]);
-      EventUtils.sendKey("RETURN", gDebugger);
-    },
-    function () {
-      assertExpansion([true, true, true, true, true]);
-      EventUtils.sendKey("RETURN", gDebugger);
-    },
-    function () {
-      assertExpansion([true, true, true, true, true]);
-      gEditor.focus();
-    },
-    function () {
-      assertExpansion([true, true, true, true, true]);
-      backspaceText(gSearchBox, 1);
-    },
-    function () {
-      assertExpansion([true, true, true, true, true]);
-      EventUtils.sendKey("RETURN", gDebugger);
-    },
-    function () {
-      assertExpansion([true, true, true, true, true]);
-      EventUtils.sendKey("RETURN", gDebugger);
-    },
-    function () {
-      assertExpansion([true, true, true, true, true]);
-      gEditor.focus();
-    },
-    function () {
-      assertExpansion([true, true, true, true, true]);
-      localScope.collapse();
-      withScope.collapse();
-      functionScope.collapse();
-      globalLexicalScope.collapse();
-      globalScope.collapse();
-    },
-    function () {
-      assertExpansion([false, false, false, false, false]);
-      EventUtils.sendKey("RETURN", gDebugger);
-    },
-    function () {
-      assertExpansion([false, false, false, false, false]);
-      EventUtils.sendKey("RETURN", gDebugger);
-    },
-    function () {
-      assertExpansion([false, false, false, false, false]);
-      gEditor.focus();
-    },
-    function () {
-      assertExpansion([false, false, false, false, false]);
-      clearText(gSearchBox);
-      typeText(gSearchBox, "*");
-    },
-    function () {
-      assertExpansion([true, true, true, true, true]);
-      EventUtils.sendKey("RETURN", gDebugger);
-    },
-    function () {
-      assertExpansion([true, true, true, true, true]);
-      EventUtils.sendKey("RETURN", gDebugger);
-    },
-    function () {
-      assertExpansion([true, true, true, true, true]);
-      gEditor.focus();
-    },
-    function () {
-      assertExpansion([true, true, true, true, true]);
-      backspaceText(gSearchBox, 1);
-    },
-    function () {
-      assertExpansion([true, true, true, true, true]);
-      EventUtils.sendKey("RETURN", gDebugger);
-    },
-    function () {
-      assertExpansion([true, true, true, true, true]);
-      EventUtils.sendKey("RETURN", gDebugger);
-    },
-    function () {
-      assertExpansion([true, true, true, true, true]);
-      gEditor.focus();
-    },
-    function () {
-      assertExpansion([true, true, true, true, true]);
-    }
-  ];
-
-  function assertExpansion(aFlags) {
-    is(localScope.expanded, aFlags[0],
-      "The localScope should " + (aFlags[0] ? "" : "not ") +
-      "be expanded at this point (" + step + ").");
-
-    is(withScope.expanded, aFlags[1],
-      "The withScope should " + (aFlags[1] ? "" : "not ") +
-      "be expanded at this point (" + step + ").");
-
-    is(functionScope.expanded, aFlags[2],
-      "The functionScope should " + (aFlags[2] ? "" : "not ") +
-      "be expanded at this point (" + step + ").");
-
-    is(globalLexicalScope.expanded, aFlags[3],
-      "The globalLexicalScope should " + (aFlags[3] ? "" : "not ") +
-      "be expanded at this point (" + step + ").");
-
-    is(globalScope.expanded, aFlags[4],
-      "The globalScope should " + (aFlags[4] ? "" : "not ") +
-      "be expanded at this point (" + step + ").");
-
-    step++;
-  }
-
-  return promise.all(tests.map(f => f()));
-}
-
-function prepareVariablesAndProperties() {
-  let deferred = promise.defer();
-
-  let localScope = gVariables.getScopeAtIndex(0);
-  let withScope = gVariables.getScopeAtIndex(1);
-  let functionScope = gVariables.getScopeAtIndex(2);
-  let globalLexicalScope = gVariables.getScopeAtIndex(3);
-  let globalScope = gVariables.getScopeAtIndex(4);
-
-  is(localScope.expanded, true,
-    "The localScope should be expanded.");
-  is(withScope.expanded, false,
-    "The withScope should not be expanded yet.");
-  is(functionScope.expanded, false,
-    "The functionScope should not be expanded yet.");
-  is(globalLexicalScope.expanded, false,
-    "The globalLexicalScope should not be expanded yet.");
-  is(globalScope.expanded, false,
-    "The globalScope should not be expanded yet.");
-
-  // Wait for only two events to be triggered, because the Function scope is
-  // an environment to which scope arguments and variables are already attached.
-  waitForDebuggerEvents(gPanel, gDebugger.EVENTS.FETCHED_VARIABLES, 2).then(() => {
-    is(localScope.expanded, true,
-      "The localScope should now be expanded.");
-    is(withScope.expanded, true,
-      "The withScope should now be expanded.");
-    is(functionScope.expanded, true,
-      "The functionScope should now be expanded.");
-    is(globalLexicalScope.expanded, true,
-      "The globalLexicalScope should now be expanded.");
-    is(globalScope.expanded, true,
-      "The globalScope should now be expanded.");
-
-    withScope.collapse();
-    functionScope.collapse();
-    globalLexicalScope.collapse();
-    globalScope.collapse();
-
-    deferred.resolve();
-  });
-
-  withScope.expand();
-  functionScope.expand();
-  globalLexicalScope.expand();
-  globalScope.expand();
-
-  return deferred.promise;
-}
-
-registerCleanupFunction(function () {
-  gTab = null;
-  gPanel = null;
-  gDebugger = null;
-  gEditor = null;
-  gVariables = null;
-  gSearchBox = null;
-});
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-filter-05.js
+++ /dev/null
@@ -1,254 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Make sure that the variables view correctly shows/hides nodes when various
- * keyboard shortcuts are pressed in the debugger's searchbox.
- */
-
-const TAB_URL = EXAMPLE_URL + "doc_with-frame.html";
-
-var gTab, gPanel, gDebugger;
-var gVariables, gSearchBox;
-
-function test() {
-  // Debug test slaves are a bit slow at this test.
-  requestLongerTimeout(2);
-
-  let options = {
-    source: TAB_URL,
-    line: 1
-  };
-  initDebugger(TAB_URL, options).then(([aTab,, aPanel]) => {
-    gTab = aTab;
-    gPanel = aPanel;
-    gDebugger = gPanel.panelWin;
-    gVariables = gDebugger.DebuggerView.Variables;
-    gSearchBox = gDebugger.DebuggerView.Filtering._searchbox;
-
-    // The first 'with' scope should be expanded by default, but the
-    // variables haven't been fetched yet. This is how 'with' scopes work.
-    promise.all([
-      waitForCaretAndScopes(gPanel, 22),
-      waitForDebuggerEvents(gPanel, gDebugger.EVENTS.FETCHED_VARIABLES)
-    ]).then(prepareVariablesAndProperties)
-      .then(testVariablesAndPropertiesFiltering)
-      .then(() => resumeDebuggerThenCloseAndFinish(gPanel))
-      .catch(aError => {
-        ok(false, "Got an error: " + aError.message + "\n" + aError.stack);
-      });
-
-    generateMouseClickInTab(gTab, "content.document.querySelector('button')");
-  });
-}
-
-function testVariablesAndPropertiesFiltering() {
-  let localScope = gVariables.getScopeAtIndex(0);
-  let withScope = gVariables.getScopeAtIndex(1);
-  let functionScope = gVariables.getScopeAtIndex(2);
-  let globalLexicalScope = gVariables.getScopeAtIndex(3);
-  let globalScope = gVariables.getScopeAtIndex(4);
-  let step = 0;
-
-  let tests = [
-    function () {
-      assertScopeExpansion([true, false, false, false, false]);
-      typeText(gSearchBox, "*arguments");
-    },
-    function () {
-      assertScopeExpansion([true, true, true, true, true]);
-      assertVariablesCountAtLeast([0, 0, 1, 0, 0]);
-
-      is(functionScope.target.querySelectorAll(".variables-view-variable:not([unmatched]) > .title > .name")[0].getAttribute("value"),
-        "arguments", "The arguments pseudoarray should be visible.");
-      is(functionScope.get("arguments").expanded, false,
-        "The arguments pseudoarray in functionScope should not be expanded.");
-
-      backspaceText(gSearchBox, 6);
-    },
-    function () {
-      assertScopeExpansion([true, true, true, true, true]);
-      assertVariablesCountAtLeast([0, 0, 1, 0, 1]);
-
-      is(functionScope.target.querySelectorAll(".variables-view-variable:not([unmatched]) > .title > .name")[0].getAttribute("value"),
-        "arguments", "The arguments pseudoarray should be visible.");
-      is(functionScope.get("arguments").expanded, false,
-        "The arguments pseudoarray in functionScope should not be expanded.");
-
-      is(globalScope.target.querySelectorAll(".variables-view-variable:not([unmatched]) > .title > .name")[0].getAttribute("value"),
-        "EventTarget", "The EventTarget object should be visible.");
-      is(globalScope.get("EventTarget").expanded, false,
-        "The EventTarget object in globalScope should not be expanded.");
-
-      backspaceText(gSearchBox, 2);
-    },
-    function () {
-      assertScopeExpansion([true, true, true, true, true]);
-      assertVariablesCountAtLeast([0, 1, 3, 0, 1]);
-
-      is(functionScope.target.querySelectorAll(".variables-view-variable:not([unmatched]) > .title > .name")[0].getAttribute("value"),
-        "aNumber", "The aNumber param should be visible.");
-      is(functionScope.get("aNumber").expanded, false,
-        "The aNumber param in functionScope should not be expanded.");
-
-      is(functionScope.target.querySelectorAll(".variables-view-variable:not([unmatched]) > .title > .name")[1].getAttribute("value"),
-        "a", "The a variable should be visible.");
-      is(functionScope.get("a").expanded, false,
-        "The a variable in functionScope should not be expanded.");
-
-      is(functionScope.target.querySelectorAll(".variables-view-variable:not([unmatched]) > .title > .name")[2].getAttribute("value"),
-        "arguments", "The arguments pseudoarray should be visible.");
-      is(functionScope.get("arguments").expanded, false,
-        "The arguments pseudoarray in functionScope should not be expanded.");
-
-      backspaceText(gSearchBox, 1);
-    },
-    function () {
-      assertScopeExpansion([true, true, true, true, true]);
-      assertVariablesCountAtLeast([4, 1, 3, 0, 1]);
-
-      is(localScope.target.querySelectorAll(".variables-view-variable:not([unmatched]) > .title > .name")[0].getAttribute("value"),
-        "this", "The this reference should be visible.");
-      is(localScope.get("this").expanded, false,
-        "The this reference in localScope should not be expanded.");
-
-      is(localScope.target.querySelectorAll(".variables-view-variable:not([unmatched]) > .title > .name")[1].getAttribute("value"),
-        "alpha", "The alpha variable should be visible.");
-      is(localScope.get("alpha").expanded, false,
-        "The alpha variable in localScope should not be expanded.");
-
-      is(localScope.target.querySelectorAll(".variables-view-variable:not([unmatched]) > .title > .name")[2].getAttribute("value"),
-        "beta", "The beta variable should be visible.");
-      is(localScope.get("beta").expanded, false,
-        "The beta variable in localScope should not be expanded.");
-
-      is(localScope.target.querySelectorAll(".variables-view-variable:not([unmatched]) > .title > .name")[3].getAttribute("value"),
-        "__proto__", "The __proto__ reference should be visible.");
-      is(localScope.get("__proto__").expanded, false,
-        "The __proto__ reference in localScope should not be expanded.");
-
-      is(functionScope.target.querySelectorAll(".variables-view-variable:not([unmatched]) > .title > .name")[0].getAttribute("value"),
-        "aNumber", "The aNumber param should be visible.");
-      is(functionScope.get("aNumber").expanded, false,
-        "The aNumber param in functionScope should not be expanded.");
-
-      is(functionScope.target.querySelectorAll(".variables-view-variable:not([unmatched]) > .title > .name")[1].getAttribute("value"),
-        "a", "The a variable should be visible.");
-      is(functionScope.get("a").expanded, false,
-        "The a variable in functionScope should not be expanded.");
-
-      is(functionScope.target.querySelectorAll(".variables-view-variable:not([unmatched]) > .title > .name")[2].getAttribute("value"),
-        "arguments", "The arguments pseudoarray should be visible.");
-      is(functionScope.get("arguments").expanded, false,
-        "The arguments pseudoarray in functionScope should not be expanded.");
-    }
-  ];
-
-  function assertScopeExpansion(aFlags) {
-    is(localScope.expanded, aFlags[0],
-      "The localScope should " + (aFlags[0] ? "" : "not ") +
-       "be expanded at this point (" + step + ").");
-
-    is(withScope.expanded, aFlags[1],
-      "The withScope should " + (aFlags[1] ? "" : "not ") +
-       "be expanded at this point (" + step + ").");
-
-    is(functionScope.expanded, aFlags[2],
-      "The functionScope should " + (aFlags[2] ? "" : "not ") +
-       "be expanded at this point (" + step + ").");
-
-    is(globalLexicalScope.expanded, aFlags[3],
-      "The globalLexicalScope should " + (aFlags[3] ? "" : "not ") +
-       "be expanded at this point (" + step + ").");
-
-    is(globalScope.expanded, aFlags[4],
-      "The globalScope should " + (aFlags[4] ? "" : "not ") +
-       "be expanded at this point (" + step + ").");
-  }
-
-  function assertVariablesCountAtLeast(aCounts) {
-    ok(localScope.target.querySelectorAll(".variables-view-variable:not([unmatched])").length >= aCounts[0],
-      "There should be " + aCounts[0] +
-      " variable displayed in the local scope (" + step + ").");
-
-    ok(withScope.target.querySelectorAll(".variables-view-variable:not([unmatched])").length >= aCounts[1],
-      "There should be " + aCounts[1] +
-      " variable displayed in the with scope (" + step + ").");
-
-    ok(functionScope.target.querySelectorAll(".variables-view-variable:not([unmatched])").length >= aCounts[2],
-      "There should be " + aCounts[2] +
-      " variable displayed in the function scope (" + step + ").");
-
-    ok(globalLexicalScope.target.querySelectorAll(".variables-view-variable:not([unmatched])").length >= aCounts[3],
-      "There should be " + aCounts[3] +
-       " variable displayed in the global scope (" + step + ").");
-
-    ok(globalScope.target.querySelectorAll(".variables-view-variable:not([unmatched])").length >= aCounts[4],
-      "There should be " + aCounts[4] +
-      " variable displayed in the global scope (" + step + ").");
-
-    step++;
-  }
-
-  return promise.all(tests.map(f => f()));
-}
-
-function prepareVariablesAndProperties() {
-  let deferred = promise.defer();
-
-  let localScope = gVariables.getScopeAtIndex(0);
-  let withScope = gVariables.getScopeAtIndex(1);
-  let functionScope = gVariables.getScopeAtIndex(2);
-  let globalLexicalScope = gVariables.getScopeAtIndex(3);
-  let globalScope = gVariables.getScopeAtIndex(4);
-
-  is(localScope.expanded, true,
-    "The localScope should be expanded.");
-  is(withScope.expanded, false,
-    "The withScope should not be expanded yet.");
-  is(functionScope.expanded, false,
-    "The functionScope should not be expanded yet.");
-  is(globalLexicalScope.expanded, false,
-    "The globalScope should not be expanded yet.");
-  is(globalScope.expanded, false,
-    "The globalScope should not be expanded yet.");
-
-  // Wait for only two events to be triggered, because the Function scope is
-  // an environment to which scope arguments and variables are already attached.
-  waitForDebuggerEvents(gPanel, gDebugger.EVENTS.FETCHED_VARIABLES, 2).then(() => {
-    is(localScope.expanded, true,
-      "The localScope should now be expanded.");
-    is(withScope.expanded, true,
-      "The withScope should now be expanded.");
-    is(functionScope.expanded, true,
-      "The functionScope should now be expanded.");
-    is(globalLexicalScope.expanded, true,
-      "The globalScope should now be expanded.");
-    is(globalScope.expanded, true,
-      "The globalScope should now be expanded.");
-
-    withScope.collapse();
-    functionScope.collapse();
-    globalLexicalScope.collapse();
-    globalScope.collapse();
-
-    deferred.resolve();
-  });
-
-  withScope.expand();
-  functionScope.expand();
-  globalLexicalScope.expand();
-  globalScope.expand();
-
-  return deferred.promise;
-}
-
-registerCleanupFunction(function () {
-  gTab = null;
-  gPanel = null;
-  gDebugger = null;
-  gVariables = null;
-  gSearchBox = null;
-});
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-filter-pref.js
+++ /dev/null
@@ -1,85 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Make sure that the variables view filter prefs work properly.
- */
-
-const TAB_URL = EXAMPLE_URL + "doc_with-frame.html";
-
-var gTab, gPanel, gDebugger;
-var gPrefs, gOptions, gVariables;
-
-function test() {
-  let options = {
-    source: TAB_URL,
-    line: 1
-  };
-  initDebugger(TAB_URL, options).then(([aTab,, aPanel]) => {
-    gTab = aTab;
-    gPanel = aPanel;
-    gDebugger = gPanel.panelWin;
-    gPrefs = gDebugger.Prefs;
-    gOptions = gDebugger.DebuggerView.Options;
-    gVariables = gDebugger.DebuggerView.Variables;
-
-    performTest();
-  });
-}
-
-function performTest() {
-  ok(!gVariables._searchboxNode,
-    "There should not initially be a searchbox available in the variables view.");
-  ok(!gVariables._searchboxContainer,
-    "There should not initially be a searchbox container available in the variables view.");
-  ok(!gVariables._parent.parentNode.querySelector(".variables-view-searchinput"),
-    "The searchbox element should not be found.");
-
-  is(gPrefs.variablesSearchboxVisible, false,
-    "The debugger searchbox should be preffed as hidden.");
-  isnot(gOptions._showVariablesFilterBoxItem.getAttribute("checked"), "true",
-    "The options menu item should not be checked.");
-
-  gOptions._showVariablesFilterBoxItem.setAttribute("checked", "true");
-  gOptions._toggleShowVariablesFilterBox();
-
-  ok(gVariables._searchboxNode,
-    "There should be a searchbox available in the variables view.");
-  ok(gVariables._searchboxContainer,
-    "There should be a searchbox container available in the variables view.");
-  ok(gVariables._parent.parentNode.querySelector(".variables-view-searchinput"),
-    "There searchbox element should be found.");
-
-  is(gPrefs.variablesSearchboxVisible, true,
-    "The debugger searchbox should now be preffed as visible.");
-  is(gOptions._showVariablesFilterBoxItem.getAttribute("checked"), "true",
-    "The options menu item should now be checked.");
-
-  gOptions._showVariablesFilterBoxItem.setAttribute("checked", "false");
-  gOptions._toggleShowVariablesFilterBox();
-
-  ok(!gVariables._searchboxNode,
-    "There should not be a searchbox available in the variables view.");
-  ok(!gVariables._searchboxContainer,
-    "There should not be a searchbox container available in the variables view.");
-  ok(!gVariables._parent.parentNode.querySelector(".variables-view-searchinput"),
-    "There searchbox element should not be found.");
-
-  is(gPrefs.variablesSearchboxVisible, false,
-    "The debugger searchbox should now be preffed as hidden.");
-  isnot(gOptions._showVariablesFilterBoxItem.getAttribute("checked"), "true",
-    "The options menu item should now be unchecked.");
-
-  closeDebuggerAndFinish(gPanel);
-}
-
-registerCleanupFunction(function () {
-  gTab = null;
-  gPanel = null;
-  gDebugger = null;
-  gPrefs = null;
-  gOptions = null;
-  gVariables = null;
-});
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-filter-searchbox.js
+++ /dev/null
@@ -1,150 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Make sure that the variables view correctly shows the searchbox
- * when prompted.
- */
-
-const TAB_URL = EXAMPLE_URL + "doc_with-frame.html";
-
-var gTab, gPanel, gDebugger;
-var gVariables;
-
-function test() {
-  let options = {
-    source: TAB_URL,
-    line: 1
-  };
-  initDebugger(TAB_URL, options).then(([aTab,, aPanel]) => {
-    gTab = aTab;
-    gPanel = aPanel;
-    gDebugger = gPanel.panelWin;
-    gVariables = gDebugger.DebuggerView.Variables;
-
-    performTest();
-  });
-}
-
-function performTest() {
-  // Step 1: the searchbox shouldn't initially be shown.
-
-  ok(!gVariables._searchboxNode,
-    "There should not initially be a searchbox available in the variables view.");
-  ok(!gVariables._searchboxContainer,
-    "There should not initially be a searchbox container available in the variables view.");
-  ok(!gVariables._parent.parentNode.querySelector(".variables-view-searchinput"),
-    "The searchbox element should not be found.");
-
-  // Step 2: test enable/disable cycles.
-
-  gVariables._enableSearch();
-  ok(gVariables._searchboxNode,
-    "There should be a searchbox available after enabling.");
-  ok(gVariables._searchboxContainer,
-    "There should be a searchbox container available after enabling.");
-  ok(gVariables._searchboxContainer.hidden,
-    "The searchbox container should be hidden at this point.");
-  ok(gVariables._parent.parentNode.querySelector(".variables-view-searchinput"),
-    "The searchbox element should be found.");
-
-  gVariables._disableSearch();
-  ok(!gVariables._searchboxNode,
-    "There shouldn't be a searchbox available after disabling.");
-  ok(!gVariables._searchboxContainer,
-    "There shouldn't be a searchbox container available after disabling.");
-  ok(!gVariables._parent.parentNode.querySelector(".variables-view-searchinput"),
-    "The searchbox element should not be found.");
-
-  // Step 3: add a placeholder while the searchbox is hidden.
-
-  var placeholder = "not freshly squeezed mango juice";
-
-  gVariables.searchPlaceholder = placeholder;
-  is(gVariables.searchPlaceholder, placeholder,
-    "The placeholder getter didn't return the expected string");
-
-  // Step 4: enable search and check the placeholder.
-
-  gVariables._enableSearch();
-  ok(gVariables._searchboxNode,
-    "There should be a searchbox available after enabling.");
-  ok(gVariables._searchboxContainer,
-    "There should be a searchbox container available after enabling.");
-  ok(gVariables._searchboxContainer.hidden,
-    "The searchbox container should be hidden at this point.");
-  ok(gVariables._parent.parentNode.querySelector(".variables-view-searchinput"),
-    "The searchbox element should be found.");
-
-  is(gVariables._searchboxNode.getAttribute("placeholder"),
-    placeholder, "There correct placeholder should be applied to the searchbox.");
-
-  // Step 5: add a placeholder while the searchbox is visible and check wether
-  // it has been immediatey applied.
-
-  var placeholder = "freshly squeezed mango juice";
-
-  gVariables.searchPlaceholder = placeholder;
-  is(gVariables.searchPlaceholder, placeholder,
-    "The placeholder getter didn't return the expected string");
-
-  is(gVariables._searchboxNode.getAttribute("placeholder"),
-    placeholder, "There correct placeholder should be applied to the searchbox.");
-
-  // Step 4: disable, enable, then test the placeholder.
-
-  gVariables._disableSearch();
-  ok(!gVariables._searchboxNode,
-    "There shouldn't be a searchbox available after disabling again.");
-  ok(!gVariables._searchboxContainer,
-    "There shouldn't be a searchbox container available after disabling again.");
-  ok(!gVariables._parent.parentNode.querySelector(".variables-view-searchinput"),
-    "The searchbox element should not be found.");
-
-  gVariables._enableSearch();
-  ok(gVariables._searchboxNode,
-    "There should be a searchbox available after enabling again.");
-  ok(gVariables._searchboxContainer,
-    "There should be a searchbox container available after enabling again.");
-  ok(gVariables._searchboxContainer.hidden,
-    "The searchbox container should be hidden at this point.");
-  ok(gVariables._parent.parentNode.querySelector(".variables-view-searchinput"),
-    "The searchbox element should be found.");
-
-  is(gVariables._searchboxNode.getAttribute("placeholder"),
-    placeholder, "There correct placeholder should be applied to the searchbox again.");
-
-  // Step 5: alternate disable, enable, then test the placeholder.
-
-  gVariables.searchEnabled = false;
-  ok(!gVariables._searchboxNode,
-    "There shouldn't be a searchbox available after disabling again.");
-  ok(!gVariables._searchboxContainer,
-    "There shouldn't be a searchbox container available after disabling again.");
-  ok(!gVariables._parent.parentNode.querySelector(".variables-view-searchinput"),
-    "The searchbox element should not be found.");
-
-  gVariables.searchEnabled = true;
-  ok(gVariables._searchboxNode,
-    "There should be a searchbox available after enabling again.");
-  ok(gVariables._searchboxContainer,
-    "There should be a searchbox container available after enabling again.");
-  ok(gVariables._searchboxContainer.hidden,
-    "The searchbox container should be hidden at this point.");
-  ok(gVariables._parent.parentNode.querySelector(".variables-view-searchinput"),
-    "The searchbox element should be found.");
-
-  is(gVariables._searchboxNode.getAttribute("placeholder"),
-    placeholder, "There correct placeholder should be applied to the searchbox again.");
-
-  closeDebuggerAndFinish(gPanel);
-}
-
-registerCleanupFunction(function () {
-  gTab = null;
-  gPanel = null;
-  gDebugger = null;
-  gVariables = null;
-});
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-frame-parameters-01.js
+++ /dev/null
@@ -1,270 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Make sure that the variables view correctly displays the properties
- * of objects when debugger is paused.
- */
-
-const TAB_URL = EXAMPLE_URL + "doc_frame-parameters.html";
-
-var gTab, gPanel, gDebugger;
-var gVariables;
-
-function test() {
-  // Debug test slaves are a bit slow at this test.
-  requestLongerTimeout(2);
-
-  let options = {
-    source: TAB_URL,
-    line: 1
-  };
-  initDebugger(TAB_URL, options).then(([aTab,, aPanel]) => {
-    gTab = aTab;
-    gPanel = aPanel;
-    gDebugger = gPanel.panelWin;
-    gVariables = gDebugger.DebuggerView.Variables;
-
-    waitForCaretAndScopes(gPanel, 24)
-      .then(initialChecks)
-      .then(testExpandVariables)
-      .then(() => resumeDebuggerThenCloseAndFinish(gPanel))
-      .catch(aError => {
-        ok(false, "Got an error: " + aError.message + "\n" + aError.stack);
-      });
-
-    generateMouseClickInTab(gTab, "content.document.querySelector('button')");
-  });
-}
-
-function initialChecks() {
-  let scopeNodes = gDebugger.document.querySelectorAll(".variables-view-scope");
-  is(scopeNodes.length, 3,
-    "There should be 3 scopes available.");
-
-  ok(scopeNodes[0].querySelector(".name").getAttribute("value").includes("[test]"),
-    "The local scope should be properly identified.");
-  ok(scopeNodes[1].querySelector(".name").getAttribute("value").includes("Block"),
-    "The global lexical scope should be properly identified.");
-  ok(scopeNodes[2].querySelector(".name").getAttribute("value").includes("[Window]"),
-    "The global scope should be properly identified.");
-
-  is(gVariables.getScopeAtIndex(0).target, scopeNodes[0],
-    "getScopeAtIndex(0) didn't return the expected scope.");
-  is(gVariables.getScopeAtIndex(1).target, scopeNodes[1],
-    "getScopeAtIndex(1) didn't return the expected scope.");
-  is(gVariables.getScopeAtIndex(2).target, scopeNodes[2],
-    "getScopeAtIndex(2) didn't return the expected scope.");
-
-  is(gVariables.getItemForNode(scopeNodes[0]).target, scopeNodes[0],
-    "getItemForNode([0]) didn't return the expected scope.");
-  is(gVariables.getItemForNode(scopeNodes[1]).target, scopeNodes[1],
-    "getItemForNode([1]) didn't return the expected scope.");
-  is(gVariables.getItemForNode(scopeNodes[2]).target, scopeNodes[2],
-    "getItemForNode([2]) didn't return the expected scope.");
-
-  is(gVariables.getItemForNode(scopeNodes[0]).expanded, true,
-    "The local scope should be expanded by default.");
-  is(gVariables.getItemForNode(scopeNodes[1]).expanded, false,
-    "The global lexical scope should not be collapsed by default.");
-  is(gVariables.getItemForNode(scopeNodes[2]).expanded, false,
-    "The global scope should not be collapsed by default.");
-}
-
-function testExpandVariables() {
-  let deferred = promise.defer();
-
-  let localScope = gVariables.getScopeAtIndex(0);
-  let localEnums = localScope.target.querySelector(".variables-view-element-details.enum").childNodes;
-
-  let thisVar = gVariables.getItemForNode(localEnums[0]);
-  let argsVar = gVariables.getItemForNode(localEnums[8]);
-  let cVar = gVariables.getItemForNode(localEnums[10]);
-
-  is(thisVar.target.querySelector(".name").getAttribute("value"), "this",
-    "Should have the right property name for 'this'.");
-  is(argsVar.target.querySelector(".name").getAttribute("value"), "arguments",
-    "Should have the right property name for 'arguments'.");
-  is(cVar.target.querySelector(".name").getAttribute("value"), "c",
-    "Should have the right property name for 'c'.");
-
-  is(thisVar.expanded, false,
-    "The thisVar should not be expanded at this point.");
-  is(argsVar.expanded, false,
-    "The argsVar should not be expanded at this point.");
-  is(cVar.expanded, false,
-    "The cVar should not be expanded at this point.");
-
-  waitForDebuggerEvents(gPanel, gDebugger.EVENTS.FETCHED_PROPERTIES, 3).then(() => {
-    is(thisVar.get("window").target.querySelector(".name").getAttribute("value"), "window",
-      "Should have the right property name for 'window'.");
-    is(thisVar.get("window").target.querySelector(".value").getAttribute("value"),
-      "Window \u2192 doc_frame-parameters.html",
-      "Should have the right property value for 'window'.");
-    ok(thisVar.get("window").target.querySelector(".value").className.includes("token-other"),
-      "Should have the right token class for 'window'.");
-
-    is(thisVar.get("document").target.querySelector(".name").getAttribute("value"), "document",
-      "Should have the right property name for 'document'.");
-    is(thisVar.get("document").target.querySelector(".value").getAttribute("value"),
-      "HTMLDocument \u2192 doc_frame-parameters.html",
-      "Should have the right property value for 'document'.");
-    ok(thisVar.get("document").target.querySelector(".value").className.includes("token-domnode"),
-      "Should have the right token class for 'document'.");
-
-    let argsProps = argsVar.target.querySelectorAll(".variables-view-property");
-    is(argsProps.length, 8,
-      "The 'arguments' variable should contain 5 enumerable and 3 non-enumerable properties");
-
-    is(argsProps[0].querySelector(".name").getAttribute("value"), "0",
-      "Should have the right property name for '0'.");
-    is(argsProps[0].querySelector(".value").getAttribute("value"), "Object",
-      "Should have the right property value for '0'.");
-    ok(argsProps[0].querySelector(".value").className.includes("token-other"),
-      "Should have the right token class for '0'.");
-
-    is(argsProps[1].querySelector(".name").getAttribute("value"), "1",
-      "Should have the right property name for '1'.");
-    is(argsProps[1].querySelector(".value").getAttribute("value"), "\"beta\"",
-      "Should have the right property value for '1'.");
-    ok(argsProps[1].querySelector(".value").className.includes("token-string"),
-      "Should have the right token class for '1'.");
-
-    is(argsProps[2].querySelector(".name").getAttribute("value"), "2",
-      "Should have the right property name for '2'.");
-    is(argsProps[2].querySelector(".value").getAttribute("value"), "3",
-      "Should have the right property name for '2'.");
-    ok(argsProps[2].querySelector(".value").className.includes("token-number"),
-      "Should have the right token class for '2'.");
-
-    is(argsProps[3].querySelector(".name").getAttribute("value"), "3",
-      "Should have the right property name for '3'.");
-    is(argsProps[3].querySelector(".value").getAttribute("value"), "false",
-      "Should have the right property value for '3'.");
-    ok(argsProps[3].querySelector(".value").className.includes("token-boolean"),
-      "Should have the right token class for '3'.");
-
-    is(argsProps[4].querySelector(".name").getAttribute("value"), "4",
-      "Should have the right property name for '4'.");
-    is(argsProps[4].querySelector(".value").getAttribute("value"), "null",
-      "Should have the right property name for '4'.");
-    ok(argsProps[4].querySelector(".value").className.includes("token-null"),
-      "Should have the right token class for '4'.");
-
-    is(gVariables.getItemForNode(argsProps[0]).target,
-       argsVar.target.querySelectorAll(".variables-view-property")[0],
-      "getItemForNode([0]) didn't return the expected property.");
-
-    is(gVariables.getItemForNode(argsProps[1]).target,
-       argsVar.target.querySelectorAll(".variables-view-property")[1],
-      "getItemForNode([1]) didn't return the expected property.");
-
-    is(gVariables.getItemForNode(argsProps[2]).target,
-       argsVar.target.querySelectorAll(".variables-view-property")[2],
-      "getItemForNode([2]) didn't return the expected property.");
-
-    is(argsVar.find(argsProps[0]).target,
-       argsVar.target.querySelectorAll(".variables-view-property")[0],
-      "find([0]) didn't return the expected property.");
-
-    is(argsVar.find(argsProps[1]).target,
-       argsVar.target.querySelectorAll(".variables-view-property")[1],
-      "find([1]) didn't return the expected property.");
-
-    is(argsVar.find(argsProps[2]).target,
-       argsVar.target.querySelectorAll(".variables-view-property")[2],
-      "find([2]) didn't return the expected property.");
-
-    let cProps = cVar.target.querySelectorAll(".variables-view-property");
-    is(cProps.length, 7,
-      "The 'c' variable should contain 6 enumerable and 1 non-enumerable properties");
-
-    is(cProps[0].querySelector(".name").getAttribute("value"), "a",
-      "Should have the right property name for 'a'.");
-    is(cProps[0].querySelector(".value").getAttribute("value"), "1",
-      "Should have the right property value for 'a'.");
-    ok(cProps[0].querySelector(".value").className.includes("token-number"),
-      "Should have the right token class for 'a'.");
-
-    is(cProps[1].querySelector(".name").getAttribute("value"), "b",
-      "Should have the right property name for 'b'.");
-    is(cProps[1].querySelector(".value").getAttribute("value"), "\"beta\"",
-      "Should have the right property value for 'b'.");
-    ok(cProps[1].querySelector(".value").className.includes("token-string"),
-      "Should have the right token class for 'b'.");
-
-    is(cProps[2].querySelector(".name").getAttribute("value"), "c",
-      "Should have the right property name for 'c'.");
-    is(cProps[2].querySelector(".value").getAttribute("value"), "3",
-      "Should have the right property value for 'c'.");
-    ok(cProps[2].querySelector(".value").className.includes("token-number"),
-      "Should have the right token class for 'c'.");
-
-    is(cProps[3].querySelector(".name").getAttribute("value"), "d",
-      "Should have the right property name for 'd'.");
-    is(cProps[3].querySelector(".value").getAttribute("value"), "false",
-      "Should have the right property value for 'd'.");
-    ok(cProps[3].querySelector(".value").className.includes("token-boolean"),
-      "Should have the right token class for 'd'.");
-
-    is(cProps[4].querySelector(".name").getAttribute("value"), "e",
-      "Should have the right property name for 'e'.");
-    is(cProps[4].querySelector(".value").getAttribute("value"), "null",
-      "Should have the right property value for 'e'.");
-    ok(cProps[4].querySelector(".value").className.includes("token-null"),
-      "Should have the right token class for 'e'.");
-
-    is(cProps[5].querySelector(".name").getAttribute("value"), "f",
-      "Should have the right property name for 'f'.");
-    is(cProps[5].querySelector(".value").getAttribute("value"), "undefined",
-      "Should have the right property value for 'f'.");
-    ok(cProps[5].querySelector(".value").className.includes("token-undefined"),
-      "Should have the right token class for 'f'.");
-
-    is(gVariables.getItemForNode(cProps[0]).target,
-       cVar.target.querySelectorAll(".variables-view-property")[0],
-      "getItemForNode([0]) didn't return the expected property.");
-
-    is(gVariables.getItemForNode(cProps[1]).target,
-       cVar.target.querySelectorAll(".variables-view-property")[1],
-      "getItemForNode([1]) didn't return the expected property.");
-
-    is(gVariables.getItemForNode(cProps[2]).target,
-       cVar.target.querySelectorAll(".variables-view-property")[2],
-      "getItemForNode([2]) didn't return the expected property.");
-
-    is(cVar.find(cProps[0]).target,
-       cVar.target.querySelectorAll(".variables-view-property")[0],
-      "find([0]) didn't return the expected property.");
-
-    is(cVar.find(cProps[1]).target,
-       cVar.target.querySelectorAll(".variables-view-property")[1],
-      "find([1]) didn't return the expected property.");
-
-    is(cVar.find(cProps[2]).target,
-       cVar.target.querySelectorAll(".variables-view-property")[2],
-      "find([2]) didn't return the expected property.");
-  });
-
-  // Expand the 'this', 'arguments' and 'c' variables view nodes. This causes
-  // their properties to be retrieved and displayed.
-  thisVar.expand();
-  argsVar.expand();
-  cVar.expand();
-
-  is(thisVar.expanded, true,
-    "The thisVar should be immediately marked as expanded.");
-  is(argsVar.expanded, true,
-    "The argsVar should be immediately marked as expanded.");
-  is(cVar.expanded, true,
-    "The cVar should be immediately marked as expanded.");
-}
-
-registerCleanupFunction(function () {
-  gTab = null;
-  gPanel = null;
-  gDebugger = null;
-  gVariables = null;
-});
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-frame-parameters-02.js
+++ /dev/null
@@ -1,552 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Make sure that the variables view displays the right variables and
- * properties when debugger is paused.
- */
-
-const TAB_URL = EXAMPLE_URL + "doc_frame-parameters.html";
-
-var gTab, gPanel, gDebugger;
-var gVariables;
-
-function test() {
-  // Debug test slaves are a bit slow at this test.
-  requestLongerTimeout(2);
-
-  let options = {
-    source: TAB_URL,
-    line: 1
-  };
-  initDebugger(TAB_URL, options).then(([aTab,, aPanel]) => {
-    gTab = aTab;
-    gPanel = aPanel;
-    gDebugger = gPanel.panelWin;
-    gVariables = gDebugger.DebuggerView.Variables;
-
-    waitForCaretAndScopes(gPanel, 24)
-      .then(testScopeVariables)
-      .then(testArgumentsProperties)
-      .then(testSimpleObject)
-      .then(testComplexObject)
-      .then(testArgumentObject)
-      .then(testInnerArgumentObject)
-      .then(testGetterSetterObject)
-      .then(() => resumeDebuggerThenCloseAndFinish(gPanel))
-      .catch(aError => {
-        ok(false, "Got an error: " + aError.message + "\n" + aError.stack);
-      });
-
-    generateMouseClickInTab(gTab, "content.document.querySelector('button')");
-  });
-}
-
-function testScopeVariables() {
-  let localScope = gVariables.getScopeAtIndex(0);
-  is(localScope.expanded, true,
-    "The local scope should be expanded by default.");
-
-  let localEnums = localScope.target.querySelector(".variables-view-element-details.enum").childNodes;
-  let localNonEnums = localScope.target.querySelector(".variables-view-element-details.nonenum").childNodes;
-
-  is(localEnums.length, 12,
-    "The local scope should contain all the created enumerable elements.");
-  is(localNonEnums.length, 0,
-    "The local scope should contain all the created non-enumerable elements.");
-
-  is(localEnums[0].querySelector(".name").getAttribute("value"), "this",
-    "Should have the right property name for 'this'.");
-  is(localEnums[0].querySelector(".value").getAttribute("value"),
-    "Window \u2192 doc_frame-parameters.html",
-    "Should have the right property value for 'this'.");
-  ok(localEnums[0].querySelector(".value").className.includes("token-other"),
-    "Should have the right token class for 'this'.");
-
-  is(localEnums[1].querySelector(".name").getAttribute("value"), "aArg",
-    "Should have the right property name for 'aArg'.");
-  is(localEnums[1].querySelector(".value").getAttribute("value"), "Object",
-    "Should have the right property value for 'aArg'.");
-  ok(localEnums[1].querySelector(".value").className.includes("token-other"),
-    "Should have the right token class for 'aArg'.");
-
-  is(localEnums[2].querySelector(".name").getAttribute("value"), "bArg",
-    "Should have the right property name for 'bArg'.");
-  is(localEnums[2].querySelector(".value").getAttribute("value"), "\"beta\"",
-    "Should have the right property value for 'bArg'.");
-  ok(localEnums[2].querySelector(".value").className.includes("token-string"),
-    "Should have the right token class for 'bArg'.");
-
-  is(localEnums[3].querySelector(".name").getAttribute("value"), "cArg",
-    "Should have the right property name for 'cArg'.");
-  is(localEnums[3].querySelector(".value").getAttribute("value"), "3",
-    "Should have the right property value for 'cArg'.");
-  ok(localEnums[3].querySelector(".value").className.includes("token-number"),
-    "Should have the right token class for 'cArg'.");
-
-  is(localEnums[4].querySelector(".name").getAttribute("value"), "dArg",
-    "Should have the right property name for 'dArg'.");
-  is(localEnums[4].querySelector(".value").getAttribute("value"), "false",
-    "Should have the right property value for 'dArg'.");
-  ok(localEnums[4].querySelector(".value").className.includes("token-boolean"),
-    "Should have the right token class for 'dArg'.");
-
-  is(localEnums[5].querySelector(".name").getAttribute("value"), "eArg",
-    "Should have the right property name for 'eArg'.");
-  is(localEnums[5].querySelector(".value").getAttribute("value"), "null",
-    "Should have the right property value for 'eArg'.");
-  ok(localEnums[5].querySelector(".value").className.includes("token-null"),
-    "Should have the right token class for 'eArg'.");
-
-  is(localEnums[6].querySelector(".name").getAttribute("value"), "fArg",
-    "Should have the right property name for 'fArg'.");
-  is(localEnums[6].querySelector(".value").getAttribute("value"), "undefined",
-    "Should have the right property value for 'fArg'.");
-  ok(localEnums[6].querySelector(".value").className.includes("token-undefined"),
-    "Should have the right token class for 'fArg'.");
-
-  is(localEnums[7].querySelector(".name").getAttribute("value"), "a",
-   "Should have the right property name for 'a'.");
-  is(localEnums[7].querySelector(".value").getAttribute("value"), "1",
-   "Should have the right property value for 'a'.");
-  ok(localEnums[7].querySelector(".value").className.includes("token-number"),
-   "Should have the right token class for 'a'.");
-
-  is(localEnums[8].querySelector(".name").getAttribute("value"), "arguments",
-    "Should have the right property name for 'arguments'.");
-  is(localEnums[8].querySelector(".value").getAttribute("value"), "Arguments",
-    "Should have the right property value for 'arguments'.");
-  ok(localEnums[8].querySelector(".value").className.includes("token-other"),
-    "Should have the right token class for 'arguments'.");
-
-  is(localEnums[9].querySelector(".name").getAttribute("value"), "b",
-   "Should have the right property name for 'b'.");
-  is(localEnums[9].querySelector(".value").getAttribute("value"), "Object",
-   "Should have the right property value for 'b'.");
-  ok(localEnums[9].querySelector(".value").className.includes("token-other"),
-   "Should have the right token class for 'b'.");
-
-  is(localEnums[10].querySelector(".name").getAttribute("value"), "c",
-   "Should have the right property name for 'c'.");
-  is(localEnums[10].querySelector(".value").getAttribute("value"), "Object",
-   "Should have the right property value for 'c'.");
-  ok(localEnums[10].querySelector(".value").className.includes("token-other"),
-   "Should have the right token class for 'c'.");
-
-  is(localEnums[11].querySelector(".name").getAttribute("value"), "myVar",
-   "Should have the right property name for 'myVar'.");
-  is(localEnums[11].querySelector(".value").getAttribute("value"), "Object",
-   "Should have the right property value for 'myVar'.");
-  ok(localEnums[11].querySelector(".value").className.includes("token-other"),
-   "Should have the right token class for 'myVar'.");
-}
-
-function testArgumentsProperties() {
-  let deferred = promise.defer();
-
-  let argsVar = gVariables.getScopeAtIndex(0).get("arguments");
-  is(argsVar.expanded, false,
-    "The 'arguments' variable should not be expanded by default.");
-
-  let argsEnums = argsVar.target.querySelector(".variables-view-element-details.enum").childNodes;
-  let argsNonEnums = argsVar.target.querySelector(".variables-view-element-details.nonenum").childNodes;
-
-  gDebugger.once(gDebugger.EVENTS.FETCHED_PROPERTIES, () => {
-    is(argsEnums.length, 5,
-      "The 'arguments' variable should contain all the created enumerable elements.");
-    is(argsNonEnums.length, 3,
-      "The 'arguments' variable should contain all the created non-enumerable elements.");
-
-    is(argsEnums[0].querySelector(".name").getAttribute("value"), "0",
-      "Should have the right property name for '0'.");
-    is(argsEnums[0].querySelector(".value").getAttribute("value"), "Object",
-      "Should have the right property value for '0'.");
-    ok(argsEnums[0].querySelector(".value").className.includes("token-other"),
-      "Should have the right token class for '0'.");
-
-    is(argsEnums[1].querySelector(".name").getAttribute("value"), "1",
-      "Should have the right property name for '1'.");
-    is(argsEnums[1].querySelector(".value").getAttribute("value"), "\"beta\"",
-      "Should have the right property value for '1'.");
-    ok(argsEnums[1].querySelector(".value").className.includes("token-string"),
-      "Should have the right token class for '1'.");
-
-    is(argsEnums[2].querySelector(".name").getAttribute("value"), "2",
-      "Should have the right property name for '2'.");
-    is(argsEnums[2].querySelector(".value").getAttribute("value"), "3",
-      "Should have the right property name for '2'.");
-    ok(argsEnums[2].querySelector(".value").className.includes("token-number"),
-      "Should have the right token class for '2'.");
-
-    is(argsEnums[3].querySelector(".name").getAttribute("value"), "3",
-      "Should have the right property name for '3'.");
-    is(argsEnums[3].querySelector(".value").getAttribute("value"), "false",
-      "Should have the right property value for '3'.");
-    ok(argsEnums[3].querySelector(".value").className.includes("token-boolean"),
-      "Should have the right token class for '3'.");
-
-    is(argsEnums[4].querySelector(".name").getAttribute("value"), "4",
-      "Should have the right property name for '4'.");
-    is(argsEnums[4].querySelector(".value").getAttribute("value"), "null",
-      "Should have the right property name for '4'.");
-    ok(argsEnums[4].querySelector(".value").className.includes("token-null"),
-      "Should have the right token class for '4'.");
-
-    is(argsNonEnums[0].querySelector(".name").getAttribute("value"), "callee",
-     "Should have the right property name for 'callee'.");
-    is(argsNonEnums[0].querySelector(".value").getAttribute("value"),
-     "test(aArg,bArg,cArg,dArg,eArg,fArg)",
-     "Should have the right property name for 'callee'.");
-    ok(argsNonEnums[0].querySelector(".value").className.includes("token-other"),
-     "Should have the right token class for 'callee'.");
-
-    is(argsNonEnums[1].querySelector(".name").getAttribute("value"), "length",
-      "Should have the right property name for 'length'.");
-    is(argsNonEnums[1].querySelector(".value").getAttribute("value"), "5",
-      "Should have the right property value for 'length'.");
-    ok(argsNonEnums[1].querySelector(".value").className.includes("token-number"),
-      "Should have the right token class for 'length'.");
-
-    is(argsNonEnums[2].querySelector(".name").getAttribute("value"), "__proto__",
-     "Should have the right property name for '__proto__'.");
-    is(argsNonEnums[2].querySelector(".value").getAttribute("value"), "Object",
-     "Should have the right property value for '__proto__'.");
-    ok(argsNonEnums[2].querySelector(".value").className.includes("token-other"),
-     "Should have the right token class for '__proto__'.");
-
-    deferred.resolve();
-  });
-
-  argsVar.expand();
-  return deferred.promise;
-}
-
-function testSimpleObject() {
-  let deferred = promise.defer();
-
-  let bVar = gVariables.getScopeAtIndex(0).get("b");
-  is(bVar.expanded, false,
-    "The 'b' variable should not be expanded by default.");
-
-  let bEnums = bVar.target.querySelector(".variables-view-element-details.enum").childNodes;
-  let bNonEnums = bVar.target.querySelector(".variables-view-element-details.nonenum").childNodes;
-
-  gDebugger.once(gDebugger.EVENTS.FETCHED_PROPERTIES, () => {
-    is(bEnums.length, 1,
-      "The 'b' variable should contain all the created enumerable elements.");
-    is(bNonEnums.length, 1,
-      "The 'b' variable should contain all the created non-enumerable elements.");
-
-    is(bEnums[0].querySelector(".name").getAttribute("value"), "a",
-      "Should have the right property name for 'a'.");
-    is(bEnums[0].querySelector(".value").getAttribute("value"), "1",
-      "Should have the right property value for 'a'.");
-    ok(bEnums[0].querySelector(".value").className.includes("token-number"),
-      "Should have the right token class for 'a'.");
-
-    is(bNonEnums[0].querySelector(".name").getAttribute("value"), "__proto__",
-     "Should have the right property name for '__proto__'.");
-    is(bNonEnums[0].querySelector(".value").getAttribute("value"), "Object",
-     "Should have the right property value for '__proto__'.");
-    ok(bNonEnums[0].querySelector(".value").className.includes("token-other"),
-     "Should have the right token class for '__proto__'.");
-
-    deferred.resolve();
-  });
-
-  bVar.expand();
-  return deferred.promise;
-}
-
-function testComplexObject() {
-  let deferred = promise.defer();
-
-  let cVar = gVariables.getScopeAtIndex(0).get("c");
-  is(cVar.expanded, false,
-    "The 'c' variable should not be expanded by default.");
-
-  let cEnums = cVar.target.querySelector(".variables-view-element-details.enum").childNodes;
-  let cNonEnums = cVar.target.querySelector(".variables-view-element-details.nonenum").childNodes;
-
-  gDebugger.once(gDebugger.EVENTS.FETCHED_PROPERTIES, () => {
-    is(cEnums.length, 6,
-      "The 'c' variable should contain all the created enumerable elements.");
-    is(cNonEnums.length, 1,
-      "The 'c' variable should contain all the created non-enumerable elements.");
-
-    is(cEnums[0].querySelector(".name").getAttribute("value"), "a",
-      "Should have the right property name for 'a'.");
-    is(cEnums[0].querySelector(".value").getAttribute("value"), "1",
-      "Should have the right property value for 'a'.");
-    ok(cEnums[0].querySelector(".value").className.includes("token-number"),
-      "Should have the right token class for 'a'.");
-
-    is(cEnums[1].querySelector(".name").getAttribute("value"), "b",
-      "Should have the right property name for 'b'.");
-    is(cEnums[1].querySelector(".value").getAttribute("value"), "\"beta\"",
-      "Should have the right property value for 'b'.");
-    ok(cEnums[1].querySelector(".value").className.includes("token-string"),
-      "Should have the right token class for 'b'.");
-
-    is(cEnums[2].querySelector(".name").getAttribute("value"), "c",
-      "Should have the right property name for 'c'.");
-    is(cEnums[2].querySelector(".value").getAttribute("value"), "3",
-      "Should have the right property value for 'c'.");
-    ok(cEnums[2].querySelector(".value").className.includes("token-number"),
-      "Should have the right token class for 'c'.");
-
-    is(cEnums[3].querySelector(".name").getAttribute("value"), "d",
-      "Should have the right property name for 'd'.");
-    is(cEnums[3].querySelector(".value").getAttribute("value"), "false",
-      "Should have the right property value for 'd'.");
-    ok(cEnums[3].querySelector(".value").className.includes("token-boolean"),
-      "Should have the right token class for 'd'.");
-
-    is(cEnums[4].querySelector(".name").getAttribute("value"), "e",
-      "Should have the right property name for 'e'.");
-    is(cEnums[4].querySelector(".value").getAttribute("value"), "null",
-      "Should have the right property value for 'e'.");
-    ok(cEnums[4].querySelector(".value").className.includes("token-null"),
-      "Should have the right token class for 'e'.");
-
-    is(cEnums[5].querySelector(".name").getAttribute("value"), "f",
-      "Should have the right property name for 'f'.");
-    is(cEnums[5].querySelector(".value").getAttribute("value"), "undefined",
-      "Should have the right property value for 'f'.");
-    ok(cEnums[5].querySelector(".value").className.includes("token-undefined"),
-      "Should have the right token class for 'f'.");
-
-    is(cNonEnums[0].querySelector(".name").getAttribute("value"), "__proto__",
-     "Should have the right property name for '__proto__'.");
-    is(cNonEnums[0].querySelector(".value").getAttribute("value"), "Object",
-     "Should have the right property value for '__proto__'.");
-    ok(cNonEnums[0].querySelector(".value").className.includes("token-other"),
-     "Should have the right token class for '__proto__'.");
-
-    deferred.resolve();
-  });
-
-  cVar.expand();
-  return deferred.promise;
-}
-
-function testArgumentObject() {
-  let deferred = promise.defer();
-
-  let argVar = gVariables.getScopeAtIndex(0).get("aArg");
-  is(argVar.expanded, false,
-    "The 'aArg' variable should not be expanded by default.");
-
-  let argEnums = argVar.target.querySelector(".variables-view-element-details.enum").childNodes;
-  let argNonEnums = argVar.target.querySelector(".variables-view-element-details.nonenum").childNodes;
-
-  gDebugger.once(gDebugger.EVENTS.FETCHED_PROPERTIES, () => {
-    is(argEnums.length, 6,
-      "The 'aArg' variable should contain all the created enumerable elements.");
-    is(argNonEnums.length, 1,
-      "The 'aArg' variable should contain all the created non-enumerable elements.");
-
-    is(argEnums[0].querySelector(".name").getAttribute("value"), "a",
-      "Should have the right property name for 'a'.");
-    is(argEnums[0].querySelector(".value").getAttribute("value"), "1",
-      "Should have the right property value for 'a'.");
-    ok(argEnums[0].querySelector(".value").className.includes("token-number"),
-      "Should have the right token class for 'a'.");
-
-    is(argEnums[1].querySelector(".name").getAttribute("value"), "b",
-      "Should have the right property name for 'b'.");
-    is(argEnums[1].querySelector(".value").getAttribute("value"), "\"beta\"",
-      "Should have the right property value for 'b'.");
-    ok(argEnums[1].querySelector(".value").className.includes("token-string"),
-      "Should have the right token class for 'b'.");
-
-    is(argEnums[2].querySelector(".name").getAttribute("value"), "c",
-      "Should have the right property name for 'c'.");
-    is(argEnums[2].querySelector(".value").getAttribute("value"), "3",
-      "Should have the right property value for 'c'.");
-    ok(argEnums[2].querySelector(".value").className.includes("token-number"),
-      "Should have the right token class for 'c'.");
-
-    is(argEnums[3].querySelector(".name").getAttribute("value"), "d",
-      "Should have the right property name for 'd'.");
-    is(argEnums[3].querySelector(".value").getAttribute("value"), "false",
-      "Should have the right property value for 'd'.");
-    ok(argEnums[3].querySelector(".value").className.includes("token-boolean"),
-      "Should have the right token class for 'd'.");
-
-    is(argEnums[4].querySelector(".name").getAttribute("value"), "e",
-      "Should have the right property name for 'e'.");
-    is(argEnums[4].querySelector(".value").getAttribute("value"), "null",
-      "Should have the right property value for 'e'.");
-    ok(argEnums[4].querySelector(".value").className.includes("token-null"),
-      "Should have the right token class for 'e'.");
-
-    is(argEnums[5].querySelector(".name").getAttribute("value"), "f",
-      "Should have the right property name for 'f'.");
-    is(argEnums[5].querySelector(".value").getAttribute("value"), "undefined",
-      "Should have the right property value for 'f'.");
-    ok(argEnums[5].querySelector(".value").className.includes("token-undefined"),
-      "Should have the right token class for 'f'.");
-
-    is(argNonEnums[0].querySelector(".name").getAttribute("value"), "__proto__",
-     "Should have the right property name for '__proto__'.");
-    is(argNonEnums[0].querySelector(".value").getAttribute("value"), "Object",
-     "Should have the right property value for '__proto__'.");
-    ok(argNonEnums[0].querySelector(".value").className.includes("token-other"),
-     "Should have the right token class for '__proto__'.");
-
-    deferred.resolve();
-  });
-
-  argVar.expand();
-  return deferred.promise;
-}
-
-function testInnerArgumentObject() {
-  let deferred = promise.defer();
-
-  let argProp = gVariables.getScopeAtIndex(0).get("arguments").get("0");
-  is(argProp.expanded, false,
-    "The 'arguments[0]' property should not be expanded by default.");
-
-  let argEnums = argProp.target.querySelector(".variables-view-element-details.enum").childNodes;
-  let argNonEnums = argProp.target.querySelector(".variables-view-element-details.nonenum").childNodes;
-
-  gDebugger.once(gDebugger.EVENTS.FETCHED_PROPERTIES, () => {
-    is(argEnums.length, 6,
-      "The 'arguments[0]' property should contain all the created enumerable elements.");
-    is(argNonEnums.length, 1,
-      "The 'arguments[0]' property should contain all the created non-enumerable elements.");
-
-    is(argEnums[0].querySelector(".name").getAttribute("value"), "a",
-      "Should have the right property name for 'a'.");
-    is(argEnums[0].querySelector(".value").getAttribute("value"), "1",
-      "Should have the right property value for 'a'.");
-    ok(argEnums[0].querySelector(".value").className.includes("token-number"),
-      "Should have the right token class for 'a'.");
-
-    is(argEnums[1].querySelector(".name").getAttribute("value"), "b",
-      "Should have the right property name for 'b'.");
-    is(argEnums[1].querySelector(".value").getAttribute("value"), "\"beta\"",
-      "Should have the right property value for 'b'.");
-    ok(argEnums[1].querySelector(".value").className.includes("token-string"),
-      "Should have the right token class for 'b'.");
-
-    is(argEnums[2].querySelector(".name").getAttribute("value"), "c",
-      "Should have the right property name for 'c'.");
-    is(argEnums[2].querySelector(".value").getAttribute("value"), "3",
-      "Should have the right property value for 'c'.");
-    ok(argEnums[2].querySelector(".value").className.includes("token-number"),
-      "Should have the right token class for 'c'.");
-
-    is(argEnums[3].querySelector(".name").getAttribute("value"), "d",
-      "Should have the right property name for 'd'.");
-    is(argEnums[3].querySelector(".value").getAttribute("value"), "false",
-      "Should have the right property value for 'd'.");
-    ok(argEnums[3].querySelector(".value").className.includes("token-boolean"),
-      "Should have the right token class for 'd'.");
-
-    is(argEnums[4].querySelector(".name").getAttribute("value"), "e",
-      "Should have the right property name for 'e'.");
-    is(argEnums[4].querySelector(".value").getAttribute("value"), "null",
-      "Should have the right property value for 'e'.");
-    ok(argEnums[4].querySelector(".value").className.includes("token-null"),
-      "Should have the right token class for 'e'.");
-
-    is(argEnums[5].querySelector(".name").getAttribute("value"), "f",
-      "Should have the right property name for 'f'.");
-    is(argEnums[5].querySelector(".value").getAttribute("value"), "undefined",
-      "Should have the right property value for 'f'.");
-    ok(argEnums[5].querySelector(".value").className.includes("token-undefined"),
-      "Should have the right token class for 'f'.");
-
-    is(argNonEnums[0].querySelector(".name").getAttribute("value"), "__proto__",
-     "Should have the right property name for '__proto__'.");
-    is(argNonEnums[0].querySelector(".value").getAttribute("value"), "Object",
-     "Should have the right property value for '__proto__'.");
-    ok(argNonEnums[0].querySelector(".value").className.includes("token-other"),
-     "Should have the right token class for '__proto__'.");
-
-    deferred.resolve();
-  });
-
-  argProp.expand();
-  return deferred.promise;
-}
-
-function testGetterSetterObject() {
-  let deferred = promise.defer();
-
-  let myVar = gVariables.getScopeAtIndex(0).get("myVar");
-  is(myVar.expanded, false,
-    "The myVar variable should not be expanded by default.");
-
-  let myVarEnums = myVar.target.querySelector(".variables-view-element-details.enum").childNodes;
-  let myVarNonEnums = myVar.target.querySelector(".variables-view-element-details.nonenum").childNodes;
-
-  gDebugger.once(gDebugger.EVENTS.FETCHED_PROPERTIES, () => {
-    is(myVarEnums.length, 2,
-      "The myVar should contain all the created enumerable elements.");
-    is(myVarNonEnums.length, 1,
-      "The myVar should contain all the created non-enumerable elements.");
-
-    is(myVarEnums[0].querySelector(".name").getAttribute("value"), "_prop",
-      "Should have the right property name for '_prop'.");
-    is(myVarEnums[0].querySelector(".value").getAttribute("value"), "42",
-      "Should have the right property value for '_prop'.");
-    ok(myVarEnums[0].querySelector(".value").className.includes("token-number"),
-      "Should have the right token class for '_prop'.");
-
-    is(myVarEnums[1].querySelector(".name").getAttribute("value"), "prop",
-      "Should have the right property name for 'prop'.");
-    is(myVarEnums[1].querySelector(".value").getAttribute("value"), "",
-      "Should have the right property value for 'prop'.");
-    ok(!myVarEnums[1].querySelector(".value").className.includes("token"),
-      "Should have no token class for 'prop'.");
-
-    is(myVarNonEnums[0].querySelector(".name").getAttribute("value"), "__proto__",
-     "Should have the right property name for '__proto__'.");
-    is(myVarNonEnums[0].querySelector(".value").getAttribute("value"), "Object",
-     "Should have the right property value for '__proto__'.");
-    ok(myVarNonEnums[0].querySelector(".value").className.includes("token-other"),
-     "Should have the right token class for '__proto__'.");
-
-    let propEnums = myVarEnums[1].querySelector(".variables-view-element-details.enum").childNodes;
-    let propNonEnums = myVarEnums[1].querySelector(".variables-view-element-details.nonenum").childNodes;
-
-    is(propEnums.length, 0,
-      "The propEnums should contain all the created enumerable elements.");
-    is(propNonEnums.length, 2,
-      "The propEnums should contain all the created non-enumerable elements.");
-
-    is(propNonEnums[0].querySelector(".name").getAttribute("value"), "get",
-      "Should have the right property name for 'get'.");
-    is(propNonEnums[0].querySelector(".value").getAttribute("value"),
-      "get prop()",
-      "Should have the right property value for 'get'.");
-    ok(propNonEnums[0].querySelector(".value").className.includes("token-other"),
-      "Should have the right token class for 'get'.");
-
-    is(propNonEnums[1].querySelector(".name").getAttribute("value"), "set",
-      "Should have the right property name for 'set'.");
-    is(propNonEnums[1].querySelector(".value").getAttribute("value"),
-      "set prop(val)",
-      "Should have the right property value for 'set'.");
-    ok(propNonEnums[1].querySelector(".value").className.includes("token-other"),
-      "Should have the right token class for 'set'.");
-
-    deferred.resolve();
-  });
-
-  myVar.expand();
-  return deferred.promise;
-}
-
-registerCleanupFunction(function () {
-  gTab = null;
-  gPanel = null;
-  gDebugger = null;
-  gVariables = null;
-});
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-frame-parameters-03.js
+++ /dev/null
@@ -1,157 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Make sure that the variables view displays the right variables and
- * properties in the global scope when debugger is paused.
- */
-
-const TAB_URL = EXAMPLE_URL + "doc_frame-parameters.html";
-
-var gTab, gPanel, gDebugger;
-var gVariables;
-
-function test() {
-  // Debug test slaves are a bit slow at this test.
-  requestLongerTimeout(2);
-
-  let options = {
-    source: TAB_URL,
-    line: 1
-  };
-  initDebugger(TAB_URL, options).then(([aTab,, aPanel]) => {
-    gTab = aTab;
-    gPanel = aPanel;
-    gDebugger = gPanel.panelWin;
-    gVariables = gDebugger.DebuggerView.Variables;
-
-    waitForCaretAndScopes(gPanel, 24)
-      .then(expandGlobalScope)
-      .then(testGlobalScope)
-      .then(expandWindowVariable)
-      .then(testWindowVariable)
-      .then(() => resumeDebuggerThenCloseAndFinish(gPanel))
-      .catch(aError => {
-        ok(false, "Got an error: " + aError.message + "\n" + aError.stack);
-      });
-
-    generateMouseClickInTab(gTab, "content.document.querySelector('button')");
-  });
-}
-
-function expandGlobalScope() {
-  let deferred = promise.defer();
-
-  let globalScope = gVariables.getScopeAtIndex(2);
-  is(globalScope.expanded, false,
-    "The global scope should not be expanded by default.");
-
-  gDebugger.once(gDebugger.EVENTS.FETCHED_VARIABLES, deferred.resolve);
-
-  EventUtils.sendMouseEvent({ type: "mousedown" },
-    globalScope.target.querySelector(".name"),
-    gDebugger);
-
-  return deferred.promise;
-}
-
-function testGlobalScope() {
-  let globalScope = gVariables.getScopeAtIndex(2);
-  is(globalScope.expanded, true,
-    "The global scope should now be expanded.");
-
-  is(globalScope.get("InstallTrigger").target.querySelector(".name").getAttribute("value"), "InstallTrigger",
-    "Should have the right property name for 'InstallTrigger'.");
-  is(globalScope.get("InstallTrigger").target.querySelector(".value").getAttribute("value"), "InstallTriggerImpl",
-    "Should have the right property value for 'InstallTrigger'.");
-
-  is(globalScope.get("SpecialPowers").target.querySelector(".name").getAttribute("value"), "SpecialPowers",
-    "Should have the right property name for 'SpecialPowers'.");
-  is(globalScope.get("SpecialPowers").target.querySelector(".value").getAttribute("value"), "Object",
-    "Should have the right property value for 'SpecialPowers'.");
-
-  is(globalScope.get("window").target.querySelector(".name").getAttribute("value"), "window",
-    "Should have the right property name for 'window'.");
-  is(globalScope.get("window").target.querySelector(".value").getAttribute("value"),
-    "Window \u2192 doc_frame-parameters.html",
-    "Should have the right property value for 'window'.");
-
-  is(globalScope.get("document").target.querySelector(".name").getAttribute("value"), "document",
-    "Should have the right property name for 'document'.");
-  is(globalScope.get("document").target.querySelector(".value").getAttribute("value"),
-    "HTMLDocument \u2192 doc_frame-parameters.html",
-    "Should have the right property value for 'document'.");
-
-  is(globalScope.get("undefined").target.querySelector(".name").getAttribute("value"), "undefined",
-    "Should have the right property name for 'undefined'.");
-  is(globalScope.get("undefined").target.querySelector(".value").getAttribute("value"), "undefined",
-    "Should have the right property value for 'undefined'.");
-
-  is(globalScope.get("undefined").target.querySelector(".enum").childNodes.length, 0,
-    "Should have no child enumerable properties for 'undefined'.");
-  is(globalScope.get("undefined").target.querySelector(".nonenum").childNodes.length, 0,
-    "Should have no child non-enumerable properties for 'undefined'.");
-}
-
-function expandWindowVariable() {
-  let deferred = promise.defer();
-
-  let windowVar = gVariables.getScopeAtIndex(2).get("window");
-  is(windowVar.expanded, false,
-    "The window variable should not be expanded by default.");
-
-  gDebugger.once(gDebugger.EVENTS.FETCHED_PROPERTIES, deferred.resolve);
-
-  EventUtils.sendMouseEvent({ type: "mousedown" },
-    windowVar.target.querySelector(".name"),
-    gDebugger);
-
-  return deferred.promise;
-}
-
-function testWindowVariable() {
-  let windowVar = gVariables.getScopeAtIndex(2).get("window");
-  is(windowVar.expanded, true,
-    "The window variable should now be expanded.");
-
-  is(windowVar.get("InstallTrigger").target.querySelector(".name").getAttribute("value"), "InstallTrigger",
-    "Should have the right property name for 'InstallTrigger'.");
-  is(windowVar.get("InstallTrigger").target.querySelector(".value").getAttribute("value"), "InstallTriggerImpl",
-    "Should have the right property value for 'InstallTrigger'.");
-
-  is(windowVar.get("SpecialPowers").target.querySelector(".name").getAttribute("value"), "SpecialPowers",
-    "Should have the right property name for 'SpecialPowers'.");
-  is(windowVar.get("SpecialPowers").target.querySelector(".value").getAttribute("value"), "Object",
-    "Should have the right property value for 'SpecialPowers'.");
-
-  is(windowVar.get("window").target.querySelector(".name").getAttribute("value"), "window",
-    "Should have the right property name for 'window'.");
-  is(windowVar.get("window").target.querySelector(".value").getAttribute("value"),
-    "Window \u2192 doc_frame-parameters.html",
-    "Should have the right property value for 'window'.");
-
-  is(windowVar.get("document").target.querySelector(".name").getAttribute("value"), "document",
-    "Should have the right property name for 'document'.");
-  is(windowVar.get("document").target.querySelector(".value").getAttribute("value"),
-    "HTMLDocument \u2192 doc_frame-parameters.html",
-    "Should have the right property value for 'document'.");
-
-  is(windowVar.get("undefined").target.querySelector(".name").getAttribute("value"), "undefined",
-    "Should have the right property name for 'undefined'.");
-  is(windowVar.get("undefined").target.querySelector(".value").getAttribute("value"), "undefined",
-    "Should have the right property value for 'undefined'.");
-
-  is(windowVar.get("undefined").target.querySelector(".enum").childNodes.length, 0,
-    "Should have no child enumerable properties for 'undefined'.");
-  is(windowVar.get("undefined").target.querySelector(".nonenum").childNodes.length, 0,
-    "Should have no child non-enumerable properties for 'undefined'.");
-}
-
-registerCleanupFunction(function () {
-  gTab = null;
-  gPanel = null;
-  gDebugger = null;
-  gVariables = null;
-});
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-frame-with.js
+++ /dev/null
@@ -1,212 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Make sure that the variables view is correctly populated in 'with' frames.
- */
-
-const TAB_URL = EXAMPLE_URL + "doc_with-frame.html";
-
-var gTab, gPanel, gDebugger;
-var gVariables;
-
-function test() {
-  let options = {
-    source: TAB_URL,
-    line: 1
-  };
-  initDebugger(TAB_URL, options).then(([aTab,, aPanel]) => {
-    gTab = aTab;
-    gPanel = aPanel;
-    gDebugger = gPanel.panelWin;
-    gVariables = gDebugger.DebuggerView.Variables;
-
-    // The first 'with' scope should be expanded by default, but the
-    // variables haven't been fetched yet. This is how 'with' scopes work.
-    promise.all([
-      waitForCaretAndScopes(gPanel, 22),
-      waitForDebuggerEvents(gPanel, gDebugger.EVENTS.FETCHED_VARIABLES)
-    ]).then(testFirstWithScope)
-      .then(expandSecondWithScope)
-      .then(testSecondWithScope)
-      .then(expandFunctionScope)
-      .then(testFunctionScope)
-      .then(() => resumeDebuggerThenCloseAndFinish(gPanel))
-      .catch(aError => {
-        ok(false, "Got an error: " + aError.message + "\n" + aError.stack);
-      });
-
-    generateMouseClickInTab(gTab, "content.document.querySelector('button')");
-  });
-}
-
-function testFirstWithScope() {
-  let firstWithScope = gVariables.getScopeAtIndex(0);
-  is(firstWithScope.expanded, true,
-    "The first 'with' scope should be expanded by default.");
-  ok(firstWithScope.target.querySelector(".name").getAttribute("value").includes("[Object]"),
-    "The first 'with' scope should be properly identified.");
-
-  let withEnums = firstWithScope._enum.childNodes;
-  let withNonEnums = firstWithScope._nonenum.childNodes;
-
-  is(withEnums.length, 3,
-    "The first 'with' scope should contain all the created enumerable elements.");
-  is(withNonEnums.length, 1,
-    "The first 'with' scope should contain all the created non-enumerable elements.");
-
-  is(withEnums[0].querySelector(".name").getAttribute("value"), "this",
-    "Should have the right property name for 'this'.");
-  is(withEnums[0].querySelector(".value").getAttribute("value"),
-    "Window \u2192 doc_with-frame.html",
-    "Should have the right property value for 'this'.");
-  ok(withEnums[0].querySelector(".value").className.includes("token-other"),
-    "Should have the right token class for 'this'.");
-
-  is(withEnums[1].querySelector(".name").getAttribute("value"), "alpha",
-    "Should have the right property name for 'alpha'.");
-  is(withEnums[1].querySelector(".value").getAttribute("value"), "1",
-    "Should have the right property value for 'alpha'.");
-  ok(withEnums[1].querySelector(".value").className.includes("token-number"),
-    "Should have the right token class for 'alpha'.");
-
-  is(withEnums[2].querySelector(".name").getAttribute("value"), "beta",
-    "Should have the right property name for 'beta'.");
-  is(withEnums[2].querySelector(".value").getAttribute("value"), "2",
-    "Should have the right property value for 'beta'.");
-  ok(withEnums[2].querySelector(".value").className.includes("token-number"),
-    "Should have the right token class for 'beta'.");
-
-  is(withNonEnums[0].querySelector(".name").getAttribute("value"), "__proto__",
-   "Should have the right property name for '__proto__'.");
-  is(withNonEnums[0].querySelector(".value").getAttribute("value"), "Object",
-   "Should have the right property value for '__proto__'.");
-  ok(withNonEnums[0].querySelector(".value").className.includes("token-other"),
-   "Should have the right token class for '__proto__'.");
-}
-
-function expandSecondWithScope() {
-  let deferred = promise.defer();
-
-  let secondWithScope = gVariables.getScopeAtIndex(1);
-  is(secondWithScope.expanded, false,
-    "The second 'with' scope should not be expanded by default.");
-
-  gDebugger.once(gDebugger.EVENTS.FETCHED_VARIABLES, deferred.resolve);
-
-  EventUtils.sendMouseEvent({ type: "mousedown" },
-    secondWithScope.target.querySelector(".name"),
-    gDebugger);
-
-  return deferred.promise;
-}
-
-function testSecondWithScope() {
-  let secondWithScope = gVariables.getScopeAtIndex(1);
-  is(secondWithScope.expanded, true,
-    "The second 'with' scope should now be expanded.");
-  ok(secondWithScope.target.querySelector(".name").getAttribute("value").includes("[Math]"),
-    "The second 'with' scope should be properly identified.");
-
-  let withEnums = secondWithScope._enum.childNodes;
-  let withNonEnums = secondWithScope._nonenum.childNodes;
-
-  is(withEnums.length, 0,
-    "The second 'with' scope should contain all the created enumerable elements.");
-  isnot(withNonEnums.length, 0,
-    "The second 'with' scope should contain all the created non-enumerable elements.");
-
-  is(secondWithScope.get("E").target.querySelector(".name").getAttribute("value"), "E",
-    "Should have the right property name for 'E'.");
-  is(secondWithScope.get("E").target.querySelector(".value").getAttribute("value"), "2.718281828459045",
-    "Should have the right property value for 'E'.");
-  ok(secondWithScope.get("E").target.querySelector(".value").className.includes("token-number"),
-    "Should have the right token class for 'E'.");
-
-  is(secondWithScope.get("PI").target.querySelector(".name").getAttribute("value"), "PI",
-    "Should have the right property name for 'PI'.");
-  is(secondWithScope.get("PI").target.querySelector(".value").getAttribute("value"), "3.141592653589793",
-    "Should have the right property value for 'PI'.");
-  ok(secondWithScope.get("PI").target.querySelector(".value").className.includes("token-number"),
-    "Should have the right token class for 'PI'.");
-
-  is(secondWithScope.get("random").target.querySelector(".name").getAttribute("value"), "random",
-    "Should have the right property name for 'random'.");
-  is(secondWithScope.get("random").target.querySelector(".value").getAttribute("value"), "random()",
-    "Should have the right property value for 'random'.");
-  ok(secondWithScope.get("random").target.querySelector(".value").className.includes("token-other"),
-    "Should have the right token class for 'random'.");
-
-  is(secondWithScope.get("__proto__").target.querySelector(".name").getAttribute("value"), "__proto__",
-    "Should have the right property name for '__proto__'.");
-  is(secondWithScope.get("__proto__").target.querySelector(".value").getAttribute("value"), "Object",
-    "Should have the right property value for '__proto__'.");
-  ok(secondWithScope.get("__proto__").target.querySelector(".value").className.includes("token-other"),
-    "Should have the right token class for '__proto__'.");
-}
-
-function expandFunctionScope() {
-  let funcScope = gVariables.getScopeAtIndex(2);
-  is(funcScope.expanded, false,
-    "The function scope shouldn't be expanded by default, but the " +
-    "variables have been already fetched. This is how local scopes work.");
-
-  EventUtils.sendMouseEvent({ type: "mousedown" },
-    funcScope.target.querySelector(".name"),
-    gDebugger);
-
-  return promise.resolve(null);
-}
-
-function testFunctionScope() {
-  let funcScope = gVariables.getScopeAtIndex(2);
-  is(funcScope.expanded, true,
-    "The function scope should now be expanded.");
-  ok(funcScope.target.querySelector(".name").getAttribute("value").includes("[test]"),
-    "The function scope should be properly identified.");
-
-  let funcEnums = funcScope._enum.childNodes;
-  let funcNonEnums = funcScope._nonenum.childNodes;
-
-  is(funcEnums.length, 6,
-    "The function scope should contain all the created enumerable elements.");
-  is(funcNonEnums.length, 0,
-    "The function scope should contain all the created non-enumerable elements.");
-
-  is(funcScope.get("aNumber").target.querySelector(".name").getAttribute("value"), "aNumber",
-    "Should have the right property name for 'aNumber'.");
-  is(funcScope.get("aNumber").target.querySelector(".value").getAttribute("value"), "10",
-    "Should have the right property value for 'aNumber'.");
-  ok(funcScope.get("aNumber").target.querySelector(".value").className.includes("token-number"),
-    "Should have the right token class for 'aNumber'.");
-
-  is(funcScope.get("a").target.querySelector(".name").getAttribute("value"), "a",
-    "Should have the right property name for 'a'.");
-  is(funcScope.get("a").target.querySelector(".value").getAttribute("value"), "314.1592653589793",
-    "Should have the right property value for 'a'.");
-  ok(funcScope.get("a").target.querySelector(".value").className.includes("token-number"),
-    "Should have the right token class for 'a'.");
-
-  is(funcScope.get("r").target.querySelector(".name").getAttribute("value"), "r",
-    "Should have the right property name for 'r'.");
-  is(funcScope.get("r").target.querySelector(".value").getAttribute("value"), "10",
-    "Should have the right property value for 'r'.");
-  ok(funcScope.get("r").target.querySelector(".value").className.includes("token-number"),
-    "Should have the right token class for 'r'.");
-
-  is(funcScope.get("foo").target.querySelector(".name").getAttribute("value"), "foo",
-    "Should have the right property name for 'foo'.");
-  is(funcScope.get("foo").target.querySelector(".value").getAttribute("value"), "6.283185307179586",
-    "Should have the right property value for 'foo'.");
-  ok(funcScope.get("foo").target.querySelector(".value").className.includes("token-number"),
-    "Should have the right token class for 'foo'.");
-}
-
-registerCleanupFunction(function () {
-  gTab = null;
-  gPanel = null;
-  gDebugger = null;
-  gVariables = null;
-});
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-frozen-sealed-nonext.js
+++ /dev/null
@@ -1,93 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * This test checks that we properly set the frozen, sealed, and non-extensbile
- * attributes on variables so that the F/S/N is shown in the variables view.
- */
-
-const TAB_URL = EXAMPLE_URL + "doc_frame-parameters.html";
-
-var gTab, gPanel, gDebugger;
-
-function test() {
-  let options = {
-    source: TAB_URL,
-    line: 1
-  };
-  initDebugger(TAB_URL, options).then(([aTab,, aPanel]) => {
-    gTab = aTab;
-    gPanel = aPanel;
-    gDebugger = gPanel.panelWin;
-
-    prepareTest();
-  });
-}
-
-function prepareTest() {
-  gDebugger.once(gDebugger.EVENTS.FETCHED_SCOPES, runTest);
-
-  evalInTab(gTab, "(" + function () {
-    var frozen = Object.freeze({});
-    var sealed = Object.seal({});
-    var nonExtensible = Object.preventExtensions({});
-    var extensible = {};
-    var string = "foo bar baz";
-
-    debugger;
-  } + "())");
-}
-
-function runTest() {
-  let hasNoneTester = function (aVariable) {
-    ok(!aVariable.hasAttribute("frozen"),
-       "The variable should not be frozen.");
-    ok(!aVariable.hasAttribute("sealed"),
-       "The variable should not be sealed.");
-    ok(!aVariable.hasAttribute("non-extensible"),
-       "The variable should be extensible.");
-  };
-
-  let testers = {
-    frozen: function (aVariable) {
-      ok(aVariable.hasAttribute("frozen"),
-        "The variable should be frozen.");
-    },
-    sealed: function (aVariable) {
-      ok(aVariable.hasAttribute("sealed"),
-        "The variable should be sealed.");
-    },
-    nonExtensible: function (aVariable) {
-      ok(aVariable.hasAttribute("non-extensible"),
-        "The variable should be non-extensible.");
-    },
-    extensible: hasNoneTester,
-    string: hasNoneTester,
-    arguments: hasNoneTester,
-    this: hasNoneTester
-  };
-
-  let variables = gDebugger.document.querySelectorAll(".variable-or-property");
-
-  for (let variable of variables) {
-    let name = variable.querySelector(".name").getAttribute("value");
-    let tester = testers[name];
-    delete testers[name];
-
-    ok(tester, "We should have a tester for the '" + name + "' variable.");
-    tester(variable);
-  }
-
-  is(Object.keys(testers).length, 0,
-    "We should have run and removed all the testers.");
-
-  resumeDebuggerThenCloseAndFinish(gPanel);
-}
-
-registerCleanupFunction(function () {
-  gTab = null;
-  gPanel = null;
-  gDebugger = null;
-});
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-hide-non-enums.js
+++ /dev/null
@@ -1,111 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Test that non-enumerable variables and properties can be hidden
- * in the variables view.
- */
-
-const TAB_URL = EXAMPLE_URL + "doc_recursion-stack.html";
-
-var gTab, gPanel, gDebugger;
-
-function test() {
-  let options = {
-    source: TAB_URL,
-    line: 1
-  };
-  initDebugger(TAB_URL, options).then(([aTab,, aPanel]) => {
-    gTab = aTab;
-    gPanel = aPanel;
-    gDebugger = gPanel.panelWin;
-
-    waitForCaretAndScopes(gPanel, 14).then(performTest);
-    callInTab(gTab, "simpleCall");
-  });
-}
-
-function performTest() {
-  let testScope = gDebugger.DebuggerView.Variables.addScope("test-scope");
-  let testVar = testScope.addItem("foo");
-
-  testVar.addItems({
-    foo: {
-      value: "bar",
-      enumerable: true
-    },
-    bar: {
-      value: "foo",
-      enumerable: false
-    }
-  });
-
-  // Expand the scope and variable.
-  testScope.expand();
-  testVar.expand();
-
-  // Expanding the non-enumerable container is synchronously dispatched
-  // on the main thread, so wait for the next tick.
-  executeSoon(() => {
-    let details = testVar._enum;
-    let nonenum = testVar._nonenum;
-
-    is(details.childNodes.length, 1,
-      "There should be just one property in the .details container.");
-    ok(details.hasAttribute("open"),
-      ".details container should be visible.");
-    ok(nonenum.hasAttribute("open"),
-      ".nonenum container should be visible.");
-    is(nonenum.childNodes.length, 1,
-      "There should be just one property in the .nonenum container.");
-
-    // Uncheck 'show hidden properties'.
-    gDebugger.DebuggerView.Options._showVariablesOnlyEnumItem.setAttribute("checked", "true");
-    gDebugger.DebuggerView.Options._toggleShowVariablesOnlyEnum();
-
-    ok(details.hasAttribute("open"),
-      ".details container should stay visible.");
-    ok(!nonenum.hasAttribute("open"),
-      ".nonenum container should become hidden.");
-
-    // Check 'show hidden properties'.
-    gDebugger.DebuggerView.Options._showVariablesOnlyEnumItem.setAttribute("checked", "false");
-    gDebugger.DebuggerView.Options._toggleShowVariablesOnlyEnum();
-
-    ok(details.hasAttribute("open"),
-      ".details container should stay visible.");
-    ok(nonenum.hasAttribute("open"),
-      ".nonenum container should become visible.");
-
-    // Collapse the variable. This is done on the current tick.
-    testVar.collapse();
-
-    ok(!details.hasAttribute("open"),
-      ".details container should be hidden.");
-    ok(!nonenum.hasAttribute("open"),
-      ".nonenum container should be hidden.");
-
-    // Uncheck 'show hidden properties'.
-    gDebugger.DebuggerView.Options._showVariablesOnlyEnumItem.setAttribute("checked", "true");
-    gDebugger.DebuggerView.Options._toggleShowVariablesOnlyEnum();
-
-    ok(!details.hasAttribute("open"),
-      ".details container should stay hidden.");
-    ok(!nonenum.hasAttribute("open"),
-      ".nonenum container should stay hidden.");
-
-    // Check 'show hidden properties'.
-    gDebugger.DebuggerView.Options._showVariablesOnlyEnumItem.setAttribute("checked", "false");
-    gDebugger.DebuggerView.Options._toggleShowVariablesOnlyEnum();
-
-    resumeDebuggerThenCloseAndFinish(gPanel);
-  });
-}
-
-registerCleanupFunction(function () {
-  gTab = null;
-  gPanel = null;
-  gDebugger = null;
-});
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-large-array-buffer.js
+++ /dev/null
@@ -1,253 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Make sure that the variables view remains responsive when faced with
- * huge ammounts of data.
- */
-
-"use strict";
-
-const TAB_URL = EXAMPLE_URL + "doc_large-array-buffer.html";
-const {ELLIPSIS} = require("devtools/shared/l10n");
-
-
-var gTab, gPanel, gDebugger, gVariables;
-
-function test() {
-  // this test does a lot of work on large objects, default 45s is not enough
-  requestLongerTimeout(4);
-
-  let options = {
-    source: TAB_URL,
-    line: 1
-  };
-  initDebugger(TAB_URL, options).then(([aTab,, aPanel]) => {
-    gTab = aTab;
-    gPanel = aPanel;
-    gDebugger = gPanel.panelWin;
-    gVariables = gDebugger.DebuggerView.Variables;
-
-    waitForCaretAndScopes(gPanel, 28, 1)
-      .then(() => performTests())
-      .then(() => resumeDebuggerThenCloseAndFinish(gPanel))
-      .catch(error => {
-        ok(false, "Got an error: " + error.message + "\n" + error.stack);
-      });
-
-    generateMouseClickInTab(gTab, "content.document.querySelector('button')");
-  });
-}
-
-const VARS_TO_TEST = [
-  {
-    varName: "buffer",
-    stringified: "ArrayBuffer",
-    doNotExpand: true
-  },
-  {
-    varName: "largeArray",
-    stringified: "Int8Array[10000]",
-    extraProps: [
-      [ "buffer", "ArrayBuffer" ],
-      [ "byteLength", "10000" ],
-      [ "byteOffset", "0" ],
-      [ "length", "10000" ],
-      [ "__proto__", "Int8ArrayPrototype" ]
-    ]
-  },
-  {
-    varName: "largeObject",
-    stringified: "Object[10000]",
-    extraProps: [
-      [ "__proto__", "Object" ]
-    ]
-  },
-  {
-    varName: "largeMap",
-    stringified: "Map[10000]",
-    hasEntries: true,
-    extraProps: [
-      [ "size", "10000" ],
-      [ "__proto__", "Object" ]
-    ]
-  },
-  {
-    varName: "largeSet",
-    stringified: "Set[10000]",
-    hasEntries: true,
-    extraProps: [
-      [ "size", "10000" ],
-      [ "__proto__", "Object" ]
-    ]
-  }
-];
-
-const PAGE_RANGES = [
-  [0, 2499], [2500, 4999], [5000, 7499], [7500, 9999]
-];
-
-function toPageNames(ranges) {
-  return ranges.map(([ from, to ]) => "[" + from + ELLIPSIS + to + "]");
-}
-
-function performTests() {
-  let localScope = gVariables.getScopeAtIndex(0);
-
-  return promise.all(VARS_TO_TEST.map(spec => {
-    let { varName, stringified, doNotExpand } = spec;
-
-    let variable = localScope.get(varName);
-    ok(variable,
-      `There should be a '${varName}' variable present in the scope.`);
-
-    is(variable.target.querySelector(".name").getAttribute("value"), varName,
-      `Should have the right property name for '${varName}'.`);
-    is(variable.target.querySelector(".value").getAttribute("value"), stringified,
-      `Should have the right property value for '${varName}'.`);
-    ok(variable.target.querySelector(".value").className.includes("token-other"),
-      `Should have the right token class for '${varName}'.`);
-
-    is(variable.expanded, false,
-      `The '${varName}' variable shouldn't be expanded.`);
-
-    if (doNotExpand) {
-      return promise.resolve();
-    }
-
-    return variable.expand()
-      .then(() => verifyFirstLevel(variable, spec));
-  }));
-}
-
-// In objects and arrays, the sliced pages are at the top-level of
-// the expanded object, but with Maps and Sets, we have to expand
-// <entries> first and look there.
-function getExpandedPages(variable, hasEntries) {
-  let expandedPages = promise.defer();
-  if (hasEntries) {
-    let entries = variable.get("<entries>");
-    ok(entries, "<entries> retrieved");
-    entries.expand().then(() => expandedPages.resolve(entries));
-  } else {
-    expandedPages.resolve(variable);
-  }
-
-  return expandedPages.promise;
-}
-
-function verifyFirstLevel(variable, spec) {
-  let { varName, hasEntries, extraProps } = spec;
-
-  let enums = variable._enum.childNodes;
-  let nonEnums = variable._nonenum.childNodes;
-
-  is(enums.length, hasEntries ? 1 : 4,
-    `The '${varName}' contains the right number of enumerable elements.`);
-  is(nonEnums.length, extraProps.length,
-    `The '${varName}' contains the right number of non-enumerable elements.`);
-
-  // the sliced pages begin after <entries> row
-  let pagesOffset = hasEntries ? 1 : 0;
-  let expandedPages = getExpandedPages(variable, hasEntries);
-
-  return expandedPages.then((pagesList) => {
-    toPageNames(PAGE_RANGES).forEach((pageName, i) => {
-      let index = i + pagesOffset;
-
-      is(pagesList.target.querySelectorAll(".variables-view-property .name")[index].getAttribute("value"),
-        pageName, `The page #${i + 1} in the '${varName}' is named correctly.`);
-      is(pagesList.target.querySelectorAll(".variables-view-property .value")[index].getAttribute("value"),
-        "", `The page #${i + 1} in the '${varName}' should not have a corresponding value.`);
-    });
-  }).then(() => {
-    extraProps.forEach(([ propName, propValue ], i) => {
-      // the extra props start after the 4 pages
-      let index = i + pagesOffset + 4;
-
-      is(variable.target.querySelectorAll(".variables-view-property .name")[index].getAttribute("value"),
-        propName, `The other properties in '${varName}' are named correctly.`);
-      is(variable.target.querySelectorAll(".variables-view-property .value")[index].getAttribute("value"),
-        propValue, `The other properties in '${varName}' have the correct value.`);
-    });
-  }).then(() => verifyNextLevels(variable, spec));
-}
-
-function verifyNextLevels(variable, spec) {
-  let { varName, hasEntries } = spec;
-
-  // the entries are already expanded in verifyFirstLevel
-  let pagesList = hasEntries ? variable.get("<entries>") : variable;
-
-  let lastPage = pagesList.get(toPageNames(PAGE_RANGES)[3]);
-  ok(lastPage, `The last page in the 1st level of '${varName}' was retrieved successfully.`);
-
-  return lastPage.expand()
-    .then(() => verifyNextLevels2(lastPage, varName));
-}
-
-function verifyNextLevels2(lastPage1, varName) {
-  const PAGE_RANGES_IN_LAST_PAGE = [
-    [7500, 8124], [8125, 8749], [8750, 9374], [9375, 9999]
-  ];
-
-  let pageEnums1 = lastPage1._enum.childNodes;
-  let pageNonEnums1 = lastPage1._nonenum.childNodes;
-  is(pageEnums1.length, 4,
-    `The last page in the 1st level of '${varName}' should contain all the created enumerable elements.`);
-  is(pageNonEnums1.length, 0,
-    `The last page in the 1st level of '${varName}' should not contain any non-enumerable elements.`);
-
-  let pageNames = toPageNames(PAGE_RANGES_IN_LAST_PAGE);
-  pageNames.forEach((pageName, i) => {
-    is(lastPage1._enum.querySelectorAll(".variables-view-property .name")[i].getAttribute("value"),
-      pageName, `The page #${i + 1} in the 2nd level of '${varName}' is named correctly.`);
-  });
-
-  let lastPage2 = lastPage1.get(pageNames[3]);
-  ok(lastPage2, "The last page in the 2nd level was retrieved successfully.");
-
-  return lastPage2.expand()
-    .then(() => verifyNextLevels3(lastPage2, varName));
-}
-
-function verifyNextLevels3(lastPage2, varName) {
-  let pageEnums2 = lastPage2._enum.childNodes;
-  let pageNonEnums2 = lastPage2._nonenum.childNodes;
-  is(pageEnums2.length, 625,
-    `The last page in the 3rd level of '${varName}' should contain all the created enumerable elements.`);
-  is(pageNonEnums2.length, 0,
-    `The last page in the 3rd level of '${varName}' shouldn't contain any non-enumerable elements.`);
-
-  const LEAF_ITEMS = [
-    [0, 9375, 624],
-    [1, 9376, 623],
-    [623, 9998, 1],
-    [624, 9999, 0]
-  ];
-
-  function expectedValue(name, value) {
-    switch (varName) {
-      case "largeArray": return 0;
-      case "largeObject": return value;
-      case "largeMap": return name + " \u2192 " + value;
-      case "largeSet": return value;
-    }
-  }
-
-  LEAF_ITEMS.forEach(([index, name, value]) => {
-    is(lastPage2._enum.querySelectorAll(".variables-view-property .name")[index].getAttribute("value"),
-      name, `The properties in the leaf level of '${varName}' are named correctly.`);
-    is(lastPage2._enum.querySelectorAll(".variables-view-property .value")[index].getAttribute("value"),
-      expectedValue(name, value), `The properties in the leaf level of '${varName}' have the correct value.`);
-  });
-}
-
-registerCleanupFunction(function () {
-  gTab = null;
-  gPanel = null;
-  gDebugger = null;
-  gVariables = null;
-});
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-map-set.js
+++ /dev/null
@@ -1,117 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Test that Map and Set and their Weak friends are displayed in variables view.
- */
-
-"use strict";
-
-const TAB_URL = EXAMPLE_URL + "doc_map-set.html";
-
-var test = Task.async(function* () {
-  let options = {
-    source: TAB_URL,
-    line: 1
-  };
-  const [tab,, panel] = yield initDebugger(TAB_URL, options);
-
-  const scopes = waitForCaretAndScopes(panel, 37);
-  callInTab(tab, "startTest");
-  yield scopes;
-
-  const variables = panel.panelWin.DebuggerView.Variables;
-  ok(variables, "Should get the variables view.");
-
-  const scope = variables.getScopeAtIndex(0);
-  ok(scope, "Should get the current function's scope.");
-
-  /* Test the maps */
-  for (let varName of ["map", "weakMap"]) {
-    const mapVar = scope.get(varName);
-    ok(mapVar, `Retrieved the '${varName}' variable from the scope`);
-
-    info(`Expanding '${varName}' variable`);
-    yield mapVar.expand();
-
-    const entries = mapVar.get("<entries>");
-    ok(entries, `Retrieved the '${varName}' entries`);
-
-    info(`Expanding '${varName}' entries`);
-    yield entries.expand();
-
-    // Check the entries. WeakMap returns its entries in a nondeterministic
-    // order, so we make our job easier by not testing the exact values.
-    let i = 0;
-    for (let [ name, entry ] of entries) {
-      is(name, i, `The '${varName}' entry's property name is correct`);
-      ok(entry.displayValue.startsWith("Object \u2192 "),
-        `The '${varName}' entry's property value is correct`);
-      yield entry.expand();
-
-      let key = entry.get("key");
-      ok(key, `The '${varName}' entry has the 'key' property`);
-      yield key.expand();
-
-      let keyProperty = key.get("a");
-      ok(keyProperty,
-        `The '${varName}' entry's 'key' has the correct property`);
-
-      let value = entry.get("value");
-      ok(value, `The '${varName}' entry has the 'value' property`);
-
-      i++;
-    }
-
-    is(i, 2, `The '${varName}' entry count is correct`);
-
-    // Check the extra property on the object
-    let extraProp = mapVar.get("extraProp");
-    ok(extraProp, `Retrieved the '${varName}' extraProp`);
-    is(extraProp.displayValue, "true",
-      `The '${varName}' extraProp's value is correct`);
-  }
-
-  /* Test the sets */
-  for (let varName of ["set", "weakSet"]) {
-    const setVar = scope.get(varName);
-    ok(setVar, `Retrieved the '${varName}' variable from the scope`);
-
-    info(`Expanding '${varName}' variable`);
-    yield setVar.expand();
-
-    const entries = setVar.get("<entries>");
-    ok(entries, `Retrieved the '${varName}' entries`);
-
-    info(`Expanding '${varName}' entries`);
-    yield entries.expand();
-
-    // Check the entries. WeakSet returns its entries in a nondeterministic
-    // order, so we make our job easier by not testing the exact values.
-    let i = 0;
-    for (let [ name, entry ] of entries) {
-      is(name, i, `The '${varName}' entry's property name is correct`);
-      is(entry.displayValue, "Object",
-        `The '${varName}' entry's property value is correct`);
-      yield entry.expand();
-
-      let entryProperty = entry.get("a");
-      ok(entryProperty,
-        `The '${varName}' entry's value has the correct property`);
-
-      i++;
-    }
-
-    is(i, 2, `The '${varName}' entry count is correct`);
-
-    // Check the extra property on the object
-    let extraProp = setVar.get("extraProp");
-    ok(extraProp, `Retrieved the '${varName}' extraProp`);
-    is(extraProp.displayValue, "true",
-      `The '${varName}' extraProp's value is correct`);
-  }
-
-  resumeDebuggerThenCloseAndFinish(panel);
-});
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-override-01.js
+++ /dev/null
@@ -1,240 +0,0 @@
-/* Any copyright is dedicated to the Public Domain.
-   http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Tests that VariablesView methods responsible for styling variables
- * as overridden work properly.
- */
-
-const TAB_URL = EXAMPLE_URL + "doc_scope-variable-2.html";
-
-function test() {
-  Task.spawn(function* () {
-    let options = {
-      source: TAB_URL,
-      line: 1
-    };
-    let [tab,, panel] = yield initDebugger(TAB_URL, options);
-    let win = panel.panelWin;
-    let events = win.EVENTS;
-    let variables = win.DebuggerView.Variables;
-
-    callInTab(tab, "test");
-    yield waitForCaretAndScopes(panel, 23);
-
-    let firstScope = variables.getScopeAtIndex(0);
-    let secondScope = variables.getScopeAtIndex(1);
-    let thirdScope = variables.getScopeAtIndex(2);
-    let globalLexicalScope = variables.getScopeAtIndex(3);
-    let globalScope = variables.getScopeAtIndex(4);
-
-    ok(firstScope, "The first scope is available.");
-    ok(secondScope, "The second scope is available.");
-    ok(thirdScope, "The third scope is available.");
-    ok(globalLexicalScope, "The global lexical scope is available.");
-    ok(globalScope, "The global scope is available.");
-
-    is(firstScope.name, "Function scope [secondNest]",
-      "The first scope's name is correct.");
-    is(secondScope.name, "Function scope [firstNest]",
-      "The second scope's name is correct.");
-    is(thirdScope.name, "Function scope [test]",
-      "The third scope's name is correct.");
-    is(globalLexicalScope.name, "Block scope",
-      "The global lexical scope's name is correct.");
-    is(globalScope.name, "Global scope [Window]",
-      "The global scope's name is correct.");
-
-    is(firstScope.expanded, true,
-      "The first scope's expansion state is correct.");
-    is(secondScope.expanded, false,
-      "The second scope's expansion state is correct.");
-    is(thirdScope.expanded, false,
-      "The third scope's expansion state is correct.");
-    is(globalLexicalScope.expanded, false,
-      "The global lexical scope's expansion state is correct.");
-    is(globalScope.expanded, false,
-      "The global scope's expansion state is correct.");
-
-    is(firstScope._store.size, 3,
-      "The first scope should have all the variables available.");
-    is(secondScope._store.size, 0,
-      "The second scope should have no variables available yet.");
-    is(thirdScope._store.size, 0,
-      "The third scope should have no variables available yet.");
-    is(globalLexicalScope._store.size, 0,
-      "The global scope should have no variables available yet.");
-    is(globalScope._store.size, 0,
-      "The global scope should have no variables available yet.");
-
-    // Test getOwnerScopeForVariableOrProperty with simple variables.
-
-    let thisVar = firstScope.get("this");
-    let thisOwner = variables.getOwnerScopeForVariableOrProperty(thisVar);
-    is(thisOwner, firstScope,
-      "The getOwnerScopeForVariableOrProperty method works properly (1).");
-
-    let someVar1 = firstScope.get("a");
-    let someOwner1 = variables.getOwnerScopeForVariableOrProperty(someVar1);
-    is(someOwner1, firstScope,
-      "The getOwnerScopeForVariableOrProperty method works properly (2).");
-
-    // Test getOwnerScopeForVariableOrProperty with first-degree properties.
-
-    let argsVar1 = firstScope.get("arguments");
-    let fetched = waitForDebuggerEvents(panel, events.FETCHED_PROPERTIES);
-    argsVar1.expand();
-    yield fetched;
-
-    let calleeProp1 = argsVar1.get("callee");
-    let calleeOwner1 = variables.getOwnerScopeForVariableOrProperty(calleeProp1);
-    is(calleeOwner1, firstScope,
-      "The getOwnerScopeForVariableOrProperty method works properly (3).");
-
-    // Test getOwnerScopeForVariableOrProperty with second-degree properties.
-
-    let protoVar1 = argsVar1.get("__proto__");
-    fetched = waitForDebuggerEvents(panel, events.FETCHED_PROPERTIES);
-    protoVar1.expand();
-    yield fetched;
-
-    let constrProp1 = protoVar1.get("constructor");
-    let constrOwner1 = variables.getOwnerScopeForVariableOrProperty(constrProp1);
-    is(constrOwner1, firstScope,
-      "The getOwnerScopeForVariableOrProperty method works properly (4).");
-
-    // Test getOwnerScopeForVariableOrProperty with a simple variable
-    // from non-topmost scopes.
-
-    // Only need to wait for a single FETCHED_VARIABLES event, just for the
-    // global scope, because the other local scopes already have the
-    // arguments and variables available as evironment bindings.
-    fetched = waitForDebuggerEvents(panel, events.FETCHED_VARIABLES);
-    secondScope.expand();
-    thirdScope.expand();
-    globalLexicalScope.expand();
-    globalScope.expand();
-    yield fetched;
-
-    let someVar2 = secondScope.get("a");
-    let someOwner2 = variables.getOwnerScopeForVariableOrProperty(someVar2);
-    is(someOwner2, secondScope,
-      "The getOwnerScopeForVariableOrProperty method works properly (5).");
-
-    let someVar3 = thirdScope.get("a");
-    let someOwner3 = variables.getOwnerScopeForVariableOrProperty(someVar3);
-    is(someOwner3, thirdScope,
-      "The getOwnerScopeForVariableOrProperty method works properly (6).");
-
-    // Test getOwnerScopeForVariableOrProperty with first-degree properies
-    // from non-topmost scopes.
-
-    let argsVar2 = secondScope.get("arguments");
-    fetched = waitForDebuggerEvents(panel, events.FETCHED_PROPERTIES);
-    argsVar2.expand();
-    yield fetched;
-
-    let calleeProp2 = argsVar2.get("callee");
-    let calleeOwner2 = variables.getOwnerScopeForVariableOrProperty(calleeProp2);
-    is(calleeOwner2, secondScope,
-      "The getOwnerScopeForVariableOrProperty method works properly (7).");
-
-    let argsVar3 = thirdScope.get("arguments");
-    fetched = waitForDebuggerEvents(panel, events.FETCHED_PROPERTIES);
-    argsVar3.expand();
-    yield fetched;
-
-    let calleeProp3 = argsVar3.get("callee");
-    let calleeOwner3 = variables.getOwnerScopeForVariableOrProperty(calleeProp3);
-    is(calleeOwner3, thirdScope,
-      "The getOwnerScopeForVariableOrProperty method works properly (8).");
-
-    // Test getOwnerScopeForVariableOrProperty with second-degree properties
-    // from non-topmost scopes.
-
-    let protoVar2 = argsVar2.get("__proto__");
-    fetched = waitForDebuggerEvents(panel, events.FETCHED_PROPERTIES);
-    protoVar2.expand();
-    yield fetched;
-
-    let constrProp2 = protoVar2.get("constructor");
-    let constrOwner2 = variables.getOwnerScopeForVariableOrProperty(constrProp2);
-    is(constrOwner2, secondScope,
-      "The getOwnerScopeForVariableOrProperty method works properly (9).");
-
-    let protoVar3 = argsVar3.get("__proto__");
-    fetched = waitForDebuggerEvents(panel, events.FETCHED_PROPERTIES);
-    protoVar3.expand();
-    yield fetched;
-
-    let constrProp3 = protoVar3.get("constructor");
-    let constrOwner3 = variables.getOwnerScopeForVariableOrProperty(constrProp3);
-    is(constrOwner3, thirdScope,
-      "The getOwnerScopeForVariableOrProperty method works properly (10).");
-
-    // Test getParentScopesForVariableOrProperty with simple variables.
-
-    let varOwners1 = variables.getParentScopesForVariableOrProperty(someVar1);
-    let varOwners2 = variables.getParentScopesForVariableOrProperty(someVar2);
-    let varOwners3 = variables.getParentScopesForVariableOrProperty(someVar3);
-
-    is(varOwners1.length, 0,
-      "There should be no owner scopes for the first variable.");
-
-    is(varOwners2.length, 1,
-      "There should be one owner scope for the second variable.");
-    is(varOwners2[0], firstScope,
-      "The only owner scope for the second variable is correct.");
-
-    is(varOwners3.length, 2,
-      "There should be two owner scopes for the third variable.");
-    is(varOwners3[0], firstScope,
-      "The first owner scope for the third variable is correct.");
-    is(varOwners3[1], secondScope,
-      "The second owner scope for the third variable is correct.");
-
-    // Test getParentScopesForVariableOrProperty with first-degree properties.
-
-    let propOwners1 = variables.getParentScopesForVariableOrProperty(calleeProp1);
-    let propOwners2 = variables.getParentScopesForVariableOrProperty(calleeProp2);
-    let propOwners3 = variables.getParentScopesForVariableOrProperty(calleeProp3);
-
-    is(propOwners1.length, 0,
-      "There should be no owner scopes for the first property.");
-
-    is(propOwners2.length, 1,
-      "There should be one owner scope for the second property.");
-    is(propOwners2[0], firstScope,
-      "The only owner scope for the second property is correct.");
-
-    is(propOwners3.length, 2,
-      "There should be two owner scopes for the third property.");
-    is(propOwners3[0], firstScope,
-      "The first owner scope for the third property is correct.");
-    is(propOwners3[1], secondScope,
-      "The second owner scope for the third property is correct.");
-
-    // Test getParentScopesForVariableOrProperty with second-degree properties.
-
-    let secPropOwners1 = variables.getParentScopesForVariableOrProperty(constrProp1);
-    let secPropOwners2 = variables.getParentScopesForVariableOrProperty(constrProp2);
-    let secPropOwners3 = variables.getParentScopesForVariableOrProperty(constrProp3);
-
-    is(secPropOwners1.length, 0,
-      "There should be no owner scopes for the first inner property.");
-
-    is(secPropOwners2.length, 1,
-      "There should be one owner scope for the second inner property.");
-    is(secPropOwners2[0], firstScope,
-      "The only owner scope for the second inner property is correct.");
-
-    is(secPropOwners3.length, 2,
-      "There should be two owner scopes for the third inner property.");
-    is(secPropOwners3[0], firstScope,
-      "The first owner scope for the third inner property is correct.");
-    is(secPropOwners3[1], secondScope,
-      "The second owner scope for the third inner property is correct.");
-
-    yield resumeDebuggerThenCloseAndFinish(panel);
-  });
-}
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-override-02.js
+++ /dev/null
@@ -1,75 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Tests that overridden variables in the VariablesView are styled properly.
- */
-
-const TAB_URL = EXAMPLE_URL + "doc_scope-variable-2.html";
-
-function test() {
-  Task.spawn(function* () {
-    let options = {
-      source: TAB_URL,
-      line: 1
-    };
-    let [tab,, panel] = yield initDebugger(TAB_URL, options);
-    let win = panel.panelWin;
-    let events = win.EVENTS;
-    let variables = win.DebuggerView.Variables;
-
-    // Wait for the hierarchy to be committed by the VariablesViewController.
-    let committedLocalScopeHierarchy = promise.defer();
-    variables.oncommit = committedLocalScopeHierarchy.resolve;
-
-
-    let onCaretAndScopes = waitForCaretAndScopes(panel, 23);
-    callInTab(tab, "test");
-    yield onCaretAndScopes;
-    yield committedLocalScopeHierarchy.promise;
-
-    let firstScope = variables.getScopeAtIndex(0);
-    let secondScope = variables.getScopeAtIndex(1);
-    let thirdScope = variables.getScopeAtIndex(2);
-
-    let someVar1 = firstScope.get("a");
-    let argsVar1 = firstScope.get("arguments");
-
-    is(someVar1.target.hasAttribute("overridden"), false,
-      "The first 'a' variable should not be marked as being overridden.");
-    is(argsVar1.target.hasAttribute("overridden"), false,
-      "The first 'arguments' variable should not be marked as being overridden.");
-
-    // Wait for the hierarchy to be committed by the VariablesViewController.
-    let committedSecondScopeHierarchy = promise.defer();
-    variables.oncommit = committedSecondScopeHierarchy.resolve;
-    secondScope.expand();
-    yield committedSecondScopeHierarchy.promise;
-
-    let someVar2 = secondScope.get("a");
-    let argsVar2 = secondScope.get("arguments");
-
-    is(someVar2.target.hasAttribute("overridden"), true,
-      "The second 'a' variable should be marked as being overridden.");
-    is(argsVar2.target.hasAttribute("overridden"), true,
-      "The second 'arguments' variable should be marked as being overridden.");
-
-    // Wait for the hierarchy to be committed by the VariablesViewController.
-    let committedThirdScopeHierarchy = promise.defer();
-    variables.oncommit = committedThirdScopeHierarchy.resolve;
-    thirdScope.expand();
-    yield committedThirdScopeHierarchy.promise;
-
-    let someVar3 = thirdScope.get("a");
-    let argsVar3 = thirdScope.get("arguments");
-
-    is(someVar3.target.hasAttribute("overridden"), true,
-      "The third 'a' variable should be marked as being overridden.");
-    is(argsVar3.target.hasAttribute("overridden"), true,
-      "The third 'arguments' variable should be marked as being overridden.");
-
-    yield resumeDebuggerThenCloseAndFinish(panel);
-  });
-}
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-popup-01.js
+++ /dev/null
@@ -1,67 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Tests opening the variable inspection popup on a variable which has a
- * simple literal as the value.
- */
-
-const TAB_URL = EXAMPLE_URL + "doc_frame-parameters.html";
-
-function test() {
-  Task.spawn(function* () {
-    let options = {
-      source: TAB_URL,
-      line: 1
-    };
-    let [tab,, panel] = yield initDebugger(TAB_URL, options);
-    let win = panel.panelWin;
-    let bubble = win.DebuggerView.VariableBubble;
-    let tooltip = bubble._tooltip.panel;
-
-    bubble._ignoreLiterals = false;
-
-    function verifyContents(textContent, className) {
-      is(tooltip.querySelectorAll(".variables-view-container").length, 0,
-        "There should be no variables view containers added to the tooltip.");
-      is(tooltip.querySelectorAll(".devtools-tooltip-simple-text").length, 1,
-        "There should be a simple text node added to the tooltip instead.");
-
-      is(tooltip.querySelector(".devtools-tooltip-simple-text").textContent, textContent,
-        "The inspected property's value is correct.");
-      ok(tooltip.querySelector(".devtools-tooltip-simple-text").className.includes(className),
-        "The inspected property's value is colorized correctly.");
-    }
-
-
-    let onCaretAndScopes = waitForCaretAndScopes(panel, 24);
-    callInTab(tab, "start");
-    yield onCaretAndScopes;
-
-    // Inspect variables.
-    yield openVarPopup(panel, { line: 15, ch: 12 });
-    verifyContents("1", "token-number");
-
-    yield reopenVarPopup(panel, { line: 16, ch: 21 });
-    verifyContents("1", "token-number");
-
-    yield reopenVarPopup(panel, { line: 17, ch: 21 });
-    verifyContents("1", "token-number");
-
-    yield reopenVarPopup(panel, { line: 17, ch: 27 });
-    verifyContents("\"beta\"", "token-string");
-
-    yield reopenVarPopup(panel, { line: 17, ch: 44 });
-    verifyContents("false", "token-boolean");
-
-    yield reopenVarPopup(panel, { line: 17, ch: 54 });
-    verifyContents("null", "token-null");
-
-    yield reopenVarPopup(panel, { line: 17, ch: 63 });
-    verifyContents("undefined", "token-undefined");
-
-    yield resumeDebuggerThenCloseAndFinish(panel);
-  });
-}
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-popup-02.js
+++ /dev/null
@@ -1,53 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Tests opening the variable inspection popup on a variable which has a
- * a property accessible via getters and setters.
- */
-
-const TAB_URL = EXAMPLE_URL + "doc_frame-parameters.html";
-
-function test() {
-  Task.spawn(function* () {
-    let options = {
-      source: TAB_URL,
-      line: 1
-    };
-    let [tab,, panel] = yield initDebugger(TAB_URL, options);
-    let win = panel.panelWin;
-    let bubble = win.DebuggerView.VariableBubble;
-    let tooltip = bubble._tooltip.panel;
-
-    function verifyContents(textContent, className) {
-      is(tooltip.querySelectorAll(".variables-view-container").length, 0,
-        "There should be no variables view containers added to the tooltip.");
-      is(tooltip.querySelectorAll(".devtools-tooltip-simple-text").length, 1,
-        "There should be a simple text node added to the tooltip instead.");
-
-      is(tooltip.querySelector(".devtools-tooltip-simple-text").textContent, textContent,
-        "The inspected property's value is correct.");
-      ok(tooltip.querySelector(".devtools-tooltip-simple-text").className.includes(className),
-        "The inspected property's value is colorized correctly.");
-    }
-
-
-    let onCaretAndScopes = waitForCaretAndScopes(panel, 24);
-    callInTab(tab, "start");
-    yield onCaretAndScopes;
-
-    // Inspect properties.
-    yield openVarPopup(panel, { line: 19, ch: 10 });
-    verifyContents("42", "token-number");
-
-    yield reopenVarPopup(panel, { line: 20, ch: 14 });
-    verifyContents("42", "token-number");
-
-    yield reopenVarPopup(panel, { line: 21, ch: 14 });
-    verifyContents("42", "token-number");
-
-    yield resumeDebuggerThenCloseAndFinish(panel);
-  });
-}
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-popup-03.js
+++ /dev/null
@@ -1,49 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Tests that the inspected indentifier is highlighted.
- */
-
-const TAB_URL = EXAMPLE_URL + "doc_frame-parameters.html";
-
-function test() {
-  Task.spawn(function* () {
-    let options = {
-      source: TAB_URL,
-      line: 1
-    };
-    let [tab,, panel] = yield initDebugger(TAB_URL, options);
-    let win = panel.panelWin;
-    let bubble = win.DebuggerView.VariableBubble;
-
-    let onCaretAndScopes = waitForCaretAndScopes(panel, 24);
-    callInTab(tab, "start");
-    yield onCaretAndScopes;
-
-    // Inspect variable.
-    yield openVarPopup(panel, { line: 15, ch: 12 });
-
-    ok(bubble.contentsShown(),
-      "The variable should register as being shown.");
-    ok(!bubble._tooltip.isEmpty(),
-      "The variable inspection popup isn't empty.");
-    ok(bubble._markedText,
-      "There's some marked text in the editor.");
-    ok(bubble._markedText.clear,
-      "The marked text in the editor can be cleared.");
-
-    yield hideVarPopup(panel);
-
-    ok(!bubble.contentsShown(),
-      "The variable should register as being hidden.");
-    ok(bubble._tooltip.isEmpty(),
-      "The variable inspection popup is now empty.");
-    ok(!bubble._markedText,
-      "The marked text in the editor was removed.");
-
-    yield resumeDebuggerThenCloseAndFinish(panel);
-  });
-}
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-popup-04.js
+++ /dev/null
@@ -1,38 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Tests that the variable inspection popup is hidden when the editor scrolls.
- */
-
-const TAB_URL = EXAMPLE_URL + "doc_frame-parameters.html";
-
-function test() {
-  Task.spawn(function* () {
-    let options = {
-      source: TAB_URL,
-      line: 1
-    };
-    let [tab,, panel] = yield initDebugger(TAB_URL, options);
-    let win = panel.panelWin;
-    let bubble = win.DebuggerView.VariableBubble;
-
-    let onCaretAndScopes = waitForCaretAndScopes(panel, 24);
-    callInTab(tab, "start");
-    yield onCaretAndScopes;
-
-    // Inspect variable.
-    yield openVarPopup(panel, { line: 15, ch: 12 });
-    yield hideVarPopupByScrollingEditor(panel);
-    ok(true, "The variable inspection popup was hidden.");
-
-    ok(bubble._tooltip.isEmpty(),
-      "The variable inspection popup is now empty.");
-    ok(!bubble._markedText,
-      "The marked text in the editor was removed.");
-
-    yield resumeDebuggerThenCloseAndFinish(panel);
-  });
-}
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-popup-05.js
+++ /dev/null
@@ -1,57 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Tests opening the variable inspection popup on a variable which has a
- * simple object as the value.
- */
-
-const TAB_URL = EXAMPLE_URL + "doc_frame-parameters.html";
-
-function test() {
-  Task.spawn(function* () {
-    let options = {
-      source: TAB_URL,
-      line: 1
-    };
-    let [tab,, panel] = yield initDebugger(TAB_URL, options);
-    let win = panel.panelWin;
-    let bubble = win.DebuggerView.VariableBubble;
-    let tooltip = bubble._tooltip.panel;
-
-    function verifyContents() {
-      is(tooltip.querySelectorAll(".variables-view-container").length, 1,
-        "There should be one variables view container added to the tooltip.");
-
-      is(tooltip.querySelectorAll(".variables-view-scope[untitled]").length, 1,
-        "There should be one scope with no header displayed.");
-      is(tooltip.querySelectorAll(".variables-view-variable[untitled]").length, 1,
-        "There should be one variable with no header displayed.");
-
-      is(tooltip.querySelectorAll(".variables-view-property").length, 2,
-        "There should be 2 properties displayed.");
-
-      is(tooltip.querySelectorAll(".variables-view-property .name")[0].getAttribute("value"), "a",
-        "The first property's name is correct.");
-      is(tooltip.querySelectorAll(".variables-view-property .value")[0].getAttribute("value"), "1",
-        "The first property's value is correct.");
-
-      is(tooltip.querySelectorAll(".variables-view-property .name")[1].getAttribute("value"), "__proto__",
-        "The second property's name is correct.");
-      is(tooltip.querySelectorAll(".variables-view-property .value")[1].getAttribute("value"), "Object",
-        "The second property's value is correct.");
-    }
-
-    let onCaretAndScopes = waitForCaretAndScopes(panel, 24);
-    callInTab(tab, "start");
-    yield onCaretAndScopes;
-
-    // Inspect variable.
-    yield openVarPopup(panel, { line: 16, ch: 12 }, true);
-    verifyContents();
-
-    yield resumeDebuggerThenCloseAndFinish(panel);
-  });
-}
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-popup-06.js
+++ /dev/null
@@ -1,83 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Tests opening the variable inspection popup on a variable which has a
- * complext object as the value.
- */
-
-const TAB_URL = EXAMPLE_URL + "doc_frame-parameters.html";
-
-function test() {
-  requestLongerTimeout(2);
-  Task.spawn(function* () {
-    let options = {
-      source: TAB_URL,
-      line: 1
-    };
-    let [tab,, panel] = yield initDebugger(TAB_URL, options);
-    let win = panel.panelWin;
-    let bubble = win.DebuggerView.VariableBubble;
-    let tooltip = bubble._tooltip.panel;
-
-    function verifyContents() {
-      is(tooltip.querySelectorAll(".variables-view-container").length, 1,
-        "There should be one variables view container added to the tooltip.");
-
-      is(tooltip.querySelectorAll(".variables-view-scope[untitled]").length, 1,
-        "There should be one scope with no header displayed.");
-      is(tooltip.querySelectorAll(".variables-view-variable[untitled]").length, 1,
-        "There should be one variable with no header displayed.");
-
-      is(tooltip.querySelectorAll(".variables-view-property").length, 7,
-        "There should be 7 properties displayed.");
-
-      is(tooltip.querySelectorAll(".variables-view-property .name")[0].getAttribute("value"), "a",
-        "The first property's name is correct.");
-      is(tooltip.querySelectorAll(".variables-view-property .value")[0].getAttribute("value"), "1",
-        "The first property's value is correct.");
-
-      is(tooltip.querySelectorAll(".variables-view-property .name")[1].getAttribute("value"), "b",
-        "The second property's name is correct.");
-      is(tooltip.querySelectorAll(".variables-view-property .value")[1].getAttribute("value"), "\"beta\"",
-        "The second property's value is correct.");
-
-      is(tooltip.querySelectorAll(".variables-view-property .name")[2].getAttribute("value"), "c",
-        "The third property's name is correct.");
-      is(tooltip.querySelectorAll(".variables-view-property .value")[2].getAttribute("value"), "3",
-        "The third property's value is correct.");
-
-      is(tooltip.querySelectorAll(".variables-view-property .name")[3].getAttribute("value"), "d",
-        "The fourth property's name is correct.");
-      is(tooltip.querySelectorAll(".variables-view-property .value")[3].getAttribute("value"), "false",
-        "The fourth property's value is correct.");
-
-      is(tooltip.querySelectorAll(".variables-view-property .name")[4].getAttribute("value"), "e",
-        "The fifth property's name is correct.");
-      is(tooltip.querySelectorAll(".variables-view-property .value")[4].getAttribute("value"), "null",
-        "The fifth property's value is correct.");
-
-      is(tooltip.querySelectorAll(".variables-view-property .name")[5].getAttribute("value"), "f",
-        "The sixth property's name is correct.");
-      is(tooltip.querySelectorAll(".variables-view-property .value")[5].getAttribute("value"), "undefined",
-        "The sixth property's value is correct.");
-
-      is(tooltip.querySelectorAll(".variables-view-property .name")[6].getAttribute("value"), "__proto__",
-        "The seventh property's name is correct.");
-      is(tooltip.querySelectorAll(".variables-view-property .value")[6].getAttribute("value"), "Object",
-        "The seventh property's value is correct.");
-    }
-
-    let onCaretAndScopes = waitForCaretAndScopes(panel, 24);
-    callInTab(tab, "start");
-    yield onCaretAndScopes;
-
-    // Inspect variable.
-    yield openVarPopup(panel, { line: 17, ch: 12 }, true);
-    verifyContents();
-
-    yield resumeDebuggerThenCloseAndFinish(panel);
-  });
-}
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-popup-07.js
+++ /dev/null
@@ -1,70 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Tests the variable inspection popup behaves correctly when switching
- * between simple and complex objects.
- */
-
-const TAB_URL = EXAMPLE_URL + "doc_frame-parameters.html";
-
-function test() {
-  Task.spawn(function* () {
-    let options = {
-      source: TAB_URL,
-      line: 1
-    };
-    let [tab,, panel] = yield initDebugger(TAB_URL, options);
-    let win = panel.panelWin;
-    let bubble = win.DebuggerView.VariableBubble;
-    let tooltip = bubble._tooltip.panel;
-
-    function verifySimpleContents(textContent, className) {
-      is(tooltip.querySelectorAll(".variables-view-container").length, 0,
-        "There should be no variables view container added to the tooltip.");
-      is(tooltip.querySelectorAll(".devtools-tooltip-simple-text").length, 1,
-        "There should be one simple text node added to the tooltip.");
-
-      is(tooltip.querySelector(".devtools-tooltip-simple-text").textContent, textContent,
-        "The inspected property's value is correct.");
-      ok(tooltip.querySelector(".devtools-tooltip-simple-text").className.includes(className),
-        "The inspected property's value is colorized correctly.");
-    }
-
-    function verifyComplexContents(propertyCount) {
-      is(tooltip.querySelectorAll(".variables-view-container").length, 1,
-        "There should be one variables view container added to the tooltip.");
-      is(tooltip.querySelectorAll(".devtools-tooltip-simple-text").length, 0,
-        "There should be no simple text node added to the tooltip.");
-
-      is(tooltip.querySelectorAll(".variables-view-scope[untitled]").length, 1,
-        "There should be one scope with no header displayed.");
-      is(tooltip.querySelectorAll(".variables-view-variable[untitled]").length, 1,
-        "There should be one variable with no header displayed.");
-
-      ok(tooltip.querySelectorAll(".variables-view-property").length >= propertyCount,
-        "There should be some properties displayed.");
-    }
-
-    let onCaretAndScopes = waitForCaretAndScopes(panel, 24);
-    callInTab(tab, "start");
-    yield onCaretAndScopes;
-
-    // Inspect variables.
-    yield openVarPopup(panel, { line: 15, ch: 12 });
-    verifySimpleContents("1", "token-number");
-
-    yield reopenVarPopup(panel, { line: 16, ch: 12 }, true);
-    verifyComplexContents(2);
-
-    yield reopenVarPopup(panel, { line: 19, ch: 10 });
-    verifySimpleContents("42", "token-number");
-
-    yield reopenVarPopup(panel, { line: 31, ch: 10 }, true);
-    verifyComplexContents(100);
-
-    yield resumeDebuggerThenCloseAndFinish(panel);
-  });
-}
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-popup-08.js
+++ /dev/null
@@ -1,75 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Tests opening inspecting variables works across scopes.
- */
-
-const TAB_URL = EXAMPLE_URL + "doc_scope-variable.html";
-
-function test() {
-  Task.spawn(function* () {
-    let options = {
-      source: TAB_URL,
-      line: 1
-    };
-    let [tab,, panel] = yield initDebugger(TAB_URL, options);
-    let win = panel.panelWin;
-    let events = win.EVENTS;
-    let editor = win.DebuggerView.editor;
-    let frames = win.DebuggerView.StackFrames;
-    let bubble = win.DebuggerView.VariableBubble;
-    let tooltip = bubble._tooltip.panel;
-
-    function verifyContents(textContent, className) {
-      is(tooltip.querySelectorAll(".variables-view-container").length, 0,
-        "There should be no variables view containers added to the tooltip.");
-      is(tooltip.querySelectorAll(".devtools-tooltip-simple-text").length, 1,
-        "There should be a simple text node added to the tooltip instead.");
-
-      is(tooltip.querySelector(".devtools-tooltip-simple-text").textContent, textContent,
-        "The inspected property's value is correct.");
-      ok(tooltip.querySelector(".devtools-tooltip-simple-text").className.includes(className),
-        "The inspected property's value is colorized correctly.");
-    }
-
-    function checkView(selectedFrame, caretLine) {
-      is(win.gThreadClient.state, "paused",
-        "Should only be getting stack frames while paused.");
-      is(frames.itemCount, 2,
-        "Should have two frames.");
-      is(frames.selectedDepth, selectedFrame,
-        "The correct frame is selected in the widget.");
-      ok(isCaretPos(panel, caretLine),
-        "Editor caret location is correct.");
-    }
-
-    let onCaretAndScopes = waitForCaretAndScopes(panel, 20);
-    callInTab(tab, "test");
-    yield onCaretAndScopes;
-
-    checkView(0, 20);
-
-    // Inspect variable in topmost frame.
-    yield openVarPopup(panel, { line: 18, ch: 12 });
-    verifyContents("\"second scope\"", "token-string");
-    checkView(0, 20);
-
-    // Hide the popup and change the frame.
-    yield hideVarPopup(panel);
-
-    let updatedFrame = waitForDebuggerEvents(panel, events.FETCHED_SCOPES);
-    frames.selectedDepth = 1;
-    yield updatedFrame;
-    checkView(1, 15);
-
-    // Inspect variable in oldest frame.
-    yield openVarPopup(panel, { line: 13, ch: 12 });
-    verifyContents("\"first scope\"", "token-string");
-    checkView(1, 15);
-
-    yield resumeDebuggerThenCloseAndFinish(panel);
-  });
-}
deleted file mode 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-popup-09.js
+++ /dev/null
@@ -1,39 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Tests opening inspecting variables works across scopes.
- */
-
-const TAB_URL = EXAMPLE_URL + "doc_scope-variable-3.html";
<