Commit 62d525db authored by Marian-Vasile Laza's avatar Marian-Vasile Laza
Browse files

Backed out changeset 9bc536ff95be (bug 1720990) for causing bc failures on...

Backed out changeset 9bc536ff95be (bug 1720990) for causing bc failures on browser_bfcache_copycommand.js. CLOSED TREE
parent 1887defe
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -224,4 +224,3 @@ https_first_disabled = true
[browser_bug1716290-2.js]
[browser_bug1716290-3.js]
[browser_bug1716290-4.js]
[browser_bfcache_copycommand.js]
+0 −94
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";

function dummyPageURL(domain) {
  return (
    getRootDirectory(gTestPath).replace(
      "chrome://mochitests/content",
      `https://${domain}`
    ) + "dummy_page.html"
  );
}

async function openContextMenu(browser) {
  let contextMenu = document.getElementById("contentAreaContextMenu");
  let awaitPopupShown = BrowserTestUtils.waitForEvent(
    contextMenu,
    "popupshown"
  );
  await BrowserTestUtils.synthesizeMouse(
    "body",
    1,
    1,
    {
      type: "contextmenu",
      button: 2,
    },
    browser
  );
  await awaitPopupShown;
}

async function closeContextMenu() {
  let contextMenu = document.getElementById("contentAreaContextMenu");
  let awaitPopupHidden = BrowserTestUtils.waitForEvent(
    contextMenu,
    "popuphidden"
  );
  contextMenu.hidePopup();
  await awaitPopupHidden;
}

async function testWithDomain(domain) {
  let dummy = dummyPageURL("example.org");
  let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, dummy);
  let browser = tab.linkedBrowser;

  let sel = await SpecialPowers.spawn(browser, [], function() {
    let sel = content.getSelection();
    sel.removeAllRanges();
    sel.selectAllChildren(content.document.body);
    return sel.toString();
  });

  await openContextMenu(browser);

  let copyItem = document.getElementById("context-copy");
  ok(!copyItem.disabled, "Copy item should be enabled if text is selected.");

  await closeContextMenu();

  let loaded = BrowserTestUtils.browserLoaded(browser, false, null, true);
  BrowserTestUtils.loadURI(browser, dummyPageURL(domain));
  await loaded;
  loaded = BrowserTestUtils.waitForLocationChange(gBrowser, dummy);
  browser.goBack();
  await loaded;

  let sel2 = await SpecialPowers.spawn(browser, [], function() {
    return content.getSelection().toString();
  });
  is(sel, sel2, "Selection should remain when coming out of BFCache.");

  await openContextMenu(browser);

  ok(!copyItem.disabled, "Copy item should be enabled if text is selected.");

  await closeContextMenu();

  await BrowserTestUtils.removeTab(tab);
}

add_task(async function testValidSameOrigin() {
  await testWithDomain("example.org");
});

add_task(async function testValidCrossOrigin() {
  await testWithDomain("example.com");
});

add_task(async function testInvalid() {
  await testWithDomain("this.is.invalid");
});
+0 −7
Original line number Diff line number Diff line
@@ -1153,13 +1153,6 @@ void nsFocusManager::WindowHidden(mozIDOMWindowProxy* aWindow,
    return;
  }

  if (!XRE_IsParentProcess() &&
      mActiveBrowsingContextInContent ==
          docShellBeingHidden->GetBrowsingContext() &&
      mActiveBrowsingContextInContent->GetIsInBFCache()) {
    SetActiveBrowsingContextInContent(nullptr, aActionId);
  }

  // if the window being hidden is an ancestor of the focused window, adjust
  // the focused window so that it points to the one being hidden. This
  // ensures that the focused window isn't in a chain of frames that doesn't