Skip to content

Commit 7fd6efa

Browse files
tsl143alver-cliqz
authored andcommitted
DB-2328: fixing goolge search redirects
1 parent 543a9ba commit 7fd6efa

File tree

1 file changed

+30
-7
lines changed
  • mozilla-release/toolkit/components/extensions/webrequest

1 file changed

+30
-7
lines changed

mozilla-release/toolkit/components/extensions/webrequest/WebRequest.jsm

Lines changed: 30 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -702,11 +702,12 @@ HttpObserverManager = {
702702
){
703703
channel.suspended = false;
704704
channel.cancel(Cr.NS_ERROR_ABORT);
705+
const { finalURL, originURL } = channel;
705706
const { gBrowser, openLinkIn, openTrustedLinkIn } = channel.browserElement.ownerGlobal;
706-
const { selectedTab, _tabs: tabs = [] } = gBrowser;
707+
const { selectedTab, tabs = [] } = gBrowser;
707708
const freshTabURL = CliqzResources.getFreshTabUrl();
708709
const otherWin = openLinkIn(
709-
channel.finalURL,
710+
finalURL,
710711
"window",
711712
{
712713
fromChrome: true,
@@ -719,16 +720,38 @@ HttpObserverManager = {
719720
this.handleForgetModeNotification(otherWin);
720721
}
721722

722-
const { originURL } = channel;
723-
if (
724-
originURL === freshTabURL ||
725-
originURL === ''
726-
) {
723+
const isSecondaryTab = tabs.find(t => t.owner == selectedTab);
724+
let isSecondaryWindow = false;
725+
try {
726+
const { BrowserWindowTracker } = ChromeUtils.import("resource:///modules/BrowserWindowTracker.jsm");
727+
BrowserWindowTracker.orderedWindows.forEach(w => {
728+
if (w.gBrowser.tabs[0]._fullLabel === originURL) {
729+
w.gBrowser.removeTab(tabs[0]);
730+
isSecondaryWindow = true;
731+
}
732+
});
733+
} catch(e){
734+
// Hopefully it never enters here.
735+
}
736+
737+
if (isSecondaryTab) {
738+
gBrowser.removeTab(isSecondaryTab);
739+
} else if (!isSecondaryWindow){
727740
if (tabs.length === 1) {
728741
openTrustedLinkIn(freshTabURL, "tab");
729742
}
730743
gBrowser.removeTab(selectedTab);
731744
}
745+
746+
try {
747+
if (originURL && originURL !== "" && originURL !== finalURL) {
748+
const { History } = ChromeUtils.import("resource://gre/modules/History.jsm");
749+
History.remove(originURL);
750+
}
751+
} catch(e){
752+
// Hopefully it never enters here.
753+
}
754+
732755
return true;
733756
}
734757
return false;

0 commit comments

Comments
 (0)