[Pkg-mozext-commits] [tabmixplus] 20/34: [e10s] Call getValidUrl when it is safe to use CPOWs

David Prévot taffit at moszumanska.debian.org
Mon Mar 9 23:28:08 UTC 2015


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch master
in repository tabmixplus.

commit ea84c08b7925396ca71f6960485ceb5e8da46fe2
Author: onemen <tabmix.onemen at gmail.com>
Date:   Sun Feb 22 14:46:41 2015 +0200

    [e10s] Call getValidUrl when it is safe to use CPOWs
---
 chrome/content/click/click.js  | 15 +++++++++++++--
 chrome/content/minit/tablib.js | 19 ++++++++++++-------
 chrome/content/tabmix.xul      |  4 ++--
 3 files changed, 27 insertions(+), 11 deletions(-)

diff --git a/chrome/content/click/click.js b/chrome/content/click/click.js
index 8a7f244..49575a9 100644
--- a/chrome/content/click/click.js
+++ b/chrome/content/click/click.js
@@ -604,12 +604,13 @@ var TabmixContext = {
     if (!gContextMenu || event.originalTarget != document.getElementById("contentAreaContextMenu"))
       return true;
 
+    var tab = gBrowser.selectedTab;
     try {
       var contentClick = gContextMenu.onTextInput || gContextMenu.onLink || gContextMenu.onImage;
       var tabsCount = gBrowser.tabs.length;
       var closeTabsEmpty = TMP_ClosedTabs.count < 1;
-      var protectedTab = gBrowser.mCurrentTab.hasAttribute("protected");
-      var lockedTab = gBrowser.mCurrentTab.hasAttribute("locked");
+      var protectedTab = tab.hasAttribute("protected");
+      var lockedTab = tab.hasAttribute("locked");
 
      /**
       * from Firefox 4.0 2009-09-11 there is gContextMenu.openLinkInCurrent
@@ -632,6 +633,16 @@ var TabmixContext = {
       var keepLastTab = tabsCount == 1 && Tabmix.prefs.getBoolPref("keepLastTab");
       Tabmix.setItem(closeTabMenu, "disabled", protectedTab || keepLastTab);
 
+      // for remote tab get call getValidUrl when it is safe to use CPOWs
+      // getValidUrl may call getParamsForLink
+      if (tab.getAttribute("remote") == "true" &&
+          onLink && (Tabmix.prefs.getBoolPref("openLinkHere") ||
+                     Tabmix.prefs.getBoolPref("openInverseLink") ||
+                     Tabmix.prefs.getBoolPref("linkWithHistory"))) {
+        let {target, linkURL} = gContextMenu;
+        gContextMenu.tabmixLinkURL = tablib.getValidUrl(linkURL, target);
+      }
+
       var freezeTabMenu = document.getElementById("tm-content-freezeTab");
       Tabmix.showItem(freezeTabMenu, !contentClick && Tabmix.prefs.getBoolPref("freezeTabContent"));
       Tabmix.setItem(freezeTabMenu, "checked", protectedTab && lockedTab);
diff --git a/chrome/content/minit/tablib.js b/chrome/content/minit/tablib.js
index 7fc3b65..6545cef 100644
--- a/chrome/content/minit/tablib.js
+++ b/chrome/content/minit/tablib.js
@@ -969,9 +969,9 @@ var tablib = {
       }
     };
 
-    gBrowser.openLinkWithHistory = function (aTab) {
+    gBrowser.openLinkWithHistory = function () {
       var {target, linkURL, principal} = gContextMenu;
-      var url = tablib.getValidUrl(aTab, linkURL, target);
+      var url = tablib.getValidUrl(linkURL, target);
       if (!url)
         return;
 
@@ -988,7 +988,7 @@ var tablib = {
         urlSecurityCheck(url, doc.nodePrincipal);
       }
 
-      this.duplicateTab(aTab, url);
+      this.duplicateTab(gBrowser.selectedTab, url);
     };
 
     Tabmix.changeCode(nsContextMenu.prototype, "nsContextMenu.prototype.openLinkInTab")._replace(
@@ -997,9 +997,9 @@ var tablib = {
       '      $&'
     ).toCode(false, Tabmix.originalFunctions, "openInverseLink");
 
-    gBrowser.openInverseLink = function (aTab) {
+    gBrowser.openInverseLink = function () {
       var {target, linkURL} = gContextMenu;
-      var url = tablib.getValidUrl(aTab, linkURL, target);
+      var url = tablib.getValidUrl(linkURL, target);
       if (!url)
         return;
 
@@ -1017,7 +1017,7 @@ var tablib = {
 
     tablib.openLinkInCurrent = function() {
       var {target, linkURL} = gContextMenu;
-      var url = tablib.getValidUrl(gBrowser.selectedTab, linkURL, target);
+      var url = tablib.getValidUrl(linkURL, target);
       if (!url)
         return;
 
@@ -1026,7 +1026,7 @@ var tablib = {
       gContextMenu.openLinkInCurrent();
     };
 
-    tablib.getValidUrl = function(tab, url, target) {
+    tablib.getValidUrl = function(url, target) {
       // valid urls don't contain spaces ' '; if we have a space it isn't a valid url.
       // Also disallow dropping javascript: or data: urls--bail out
       let isValid = function(aUrl) {
@@ -1036,6 +1036,11 @@ var tablib = {
         return true;
       };
 
+      let tab = gBrowser.selectedTab;
+      if (tab.getAttribute("remote") == "true" &&
+          typeof gContextMenu.tabmixLinkURL != "undefined")
+        return gContextMenu.tabmixLinkURL;
+
       if (!isValid(url)) {
         let json = {button: 0, shiftKey: false, ctrlKey: false, metaKey: false,
                     altKey: false, target: {},
diff --git a/chrome/content/tabmix.xul b/chrome/content/tabmix.xul
index 834915d..ec21f07 100644
--- a/chrome/content/tabmix.xul
+++ b/chrome/content/tabmix.xul
@@ -114,11 +114,11 @@
       <menuitem id="tm-openinverselink" label="" fglabel="&linkForegroundTab.label;" bglabel="&linkBackgroundTab.label;"
          fgaccesskey="&linkForegroundTab.accesskey;" bgaccesskey="&linkBackgroundTab.accesskey;"
          insertafter="context-openlinkintab"
-         oncommand="gBrowser.openInverseLink(gBrowser.mCurrentTab);"/>
+         oncommand="gBrowser.openInverseLink();"/>
       <menuitem id="tm-openAllLinks" label="&openalllinks.label;" accesskey="&openalllinks.accesskey;"
          insertafter="context-openlinkintab" oncommand="TabmixContext.openMultipleLinks();"/>
       <menuitem id="tm-linkWithhistory" label="&linkwithhistory.label;" accesskey="&linkwithhistory.accesskey;"
-         insertafter="context-openlinkintab" oncommand="gBrowser.openLinkWithHistory(gBrowser.mCurrentTab);"/>
+         insertafter="context-openlinkintab" oncommand="gBrowser.openLinkWithHistory();"/>
       <menuseparator id="tm-content-miscSep" insertafter="context-stop"/>
       <menuitem id="tm-content-closetab" label="&closeTab.label;" oncommand="gBrowser.removeCurrentTab();" insertbefore="context-sep-stop,context-sep-viewbgimage"/>
       <menuitem id="tm-duplicateTabContext" key="key_tm_dupTab" label="&duplicateTabMenu.label;" accesskey="&duplicateTabMenu.accesskey;"

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/tabmixplus.git



More information about the Pkg-mozext-commits mailing list