Commit d9da5f88 authored by Alexandru Marc's avatar Alexandru Marc Committed by amarc@mozilla.com
Browse files

Revert "Bug 1967673 - [devtools] Don't omit valid safe getter undefined values...

Revert "Bug 1967673 - [devtools] Don't omit valid safe getter undefined values in _findSafeGetterValues. r=devtools-reviewers,jdescottes" by dev request

This reverts commit 4fe1cbf2.
parent 57c27bb0
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -588,8 +588,6 @@ fail-if = ["a11y_checks"] # Bug 1849028 clicked element may not be focusable and
["browser_webconsole_persist.js"]
skip-if = ["os == 'linux' && os_version == '18.04' && processor == 'x86_64' && debug && http3"] # Bug 1829298

["browser_webconsole_previewers_https.js"]

["browser_webconsole_previewers.js"]
support-files = ["browser_webconsole_previewers.snapshot.mjs"]
https_first_disabled = true # JS HttpServer doesn't support https
+0 −56
Original line number Diff line number Diff line
/* Any copyright is dedicated to the Public Domain.
 * http://creativecommons.org/publicdomain/zero/1.0/ */

"use strict";

// Those cases should be added into AllJavascriptTypes.mjs (so they can be consumed in
// browser_webconsole_previewers.js) when Bug 1967917 is resolved (so we can have a secure context)

add_task(async function () {
  const hud = await openNewTabAndConsole(URL_ROOT_COM_SSL + "test-blank.html");

  SpecialPowers.spawn(gBrowser.selectedBrowser, [], function () {
    const openReq = content.indexedDB.open("idb-bug-demo", 1);
    openReq.onupgradeneeded = e => {
      e.target.result.createObjectStore("demo", {
        keyPath: "id",
      });
    };
    openReq.onsuccess = e => {
      const db = e.target.result;
      const store = db.transaction(["demo"], "readonly").objectStore("demo");

      const idbRequest = store.get("unknown");
      idbRequest.onsuccess = () => {
        content.console.log(idbRequest);
        db.close();
      };
    };
  });

  const message = await waitForMessageByType(hud, "IDBRequest", ".console-api");
  is(
    message.node.querySelector(".message-body").innerText.trim(),
    'IDBRequest { result: undefined, error: null, source: IDBObjectStore, transaction: IDBTransaction, readyState: "done", onsuccess: Restricted, onerror: null }',
    "Got expected IDBRequest object, with undefined result property"
  );

  const oi = message.node.querySelector(".tree");
  // Expand the root node
  await expandObjectInspectorNode(oi.querySelector(".tree-node"));
  const resultPropertyTreeItemEl = Array.from(
    oi.querySelectorAll(".object-node")
  ).find(el => el.querySelector(".object-label")?.innerText === "result");
  is(
    resultPropertyTreeItemEl.innerText,
    "result: undefined",
    "Got expected result property in the object inspector for the IDBRequest"
  );

  // This can't be placed in a registerCleanupFunction because it throws (The operation is insecure)
  await SpecialPowers.spawn(gBrowser.selectedBrowser, [], async function () {
    const { promise, resolve } = content.Promise.withResolvers();
    content.indexedDB.deleteDatabase("idb-bug-demo").onsuccess = resolve;
    await promise;
  });
});
+3 −5
Original line number Diff line number Diff line
@@ -478,7 +478,7 @@ class ObjectActor extends Actor {
        }

        const getterValue = this._evaluateGetter(desc.get);
        if (getterValue === this._evaluateGetterNoResult) {
        if (getterValue === undefined) {
          continue;
        }

@@ -516,8 +516,6 @@ class ObjectActor extends Actor {
    return safeGetterValues;
  }

  _evaluateGetterNoResult = Symbol();

  /**
   * Evaluate the getter function |desc.get|.
   * @param {Object} getter
@@ -525,10 +523,10 @@ class ObjectActor extends Actor {
  _evaluateGetter(getter) {
    const result = getter.call(this.obj);
    if (!result || "throw" in result) {
      return this._evaluateGetterNoResult;
      return undefined;
    }

    let getterValue = this._evaluateGetterNoResult;
    let getterValue = undefined;
    if ("return" in result) {
      getterValue = result.return;
    } else if ("yield" in result) {
+2 −2
Original line number Diff line number Diff line
@@ -246,7 +246,7 @@ const DOMAPIs = [
      formData;
    `,
  },
  /* midi API requires https (See Bug 1967917)
  /* midi API requires https
  {
    context: CONTEXTS.PAGE,
    expression: `