Richard Pospesel pushed to branch tor-browser-102.6.0esr-12.0-1 at The Tor Project / Applications / Tor Browser

Commits:

5 changed files:

Changes:

  • browser/components/places/PlacesUIUtils.jsm
    ... ... @@ -1903,7 +1903,11 @@ XPCOMUtils.defineLazyGetter(PlacesUIUtils, "URI_FLAVORS", () => {
    1903 1903
       return [PlacesUtils.TYPE_X_MOZ_URL, TAB_DROP_TYPE, PlacesUtils.TYPE_UNICODE];
    
    1904 1904
     });
    
    1905 1905
     XPCOMUtils.defineLazyGetter(PlacesUIUtils, "SUPPORTED_FLAVORS", () => {
    
    1906
    -  return [...PlacesUIUtils.PLACES_FLAVORS, ...PlacesUIUtils.URI_FLAVORS];
    
    1906
    +  return [
    
    1907
    +    ...PlacesUIUtils.PLACES_FLAVORS,
    
    1908
    +    ...PlacesUIUtils.URI_FLAVORS,
    
    1909
    +    "application/x-torbrowser-opaque",
    
    1910
    +  ];
    
    1907 1911
     });
    
    1908 1912
     
    
    1909 1913
     XPCOMUtils.defineLazyGetter(PlacesUIUtils, "ellipsis", function() {
    

  • browser/components/places/content/controller.js
    ... ... @@ -1251,6 +1251,7 @@ PlacesController.prototype = {
    1251 1251
         [
    
    1252 1252
           PlacesUtils.TYPE_X_MOZ_PLACE,
    
    1253 1253
           PlacesUtils.TYPE_X_MOZ_URL,
    
    1254
    +      "application/x-torbrowser-opaque",
    
    1254 1255
           PlacesUtils.TYPE_UNICODE,
    
    1255 1256
         ].forEach(type => xferable.addDataFlavor(type));
    
    1256 1257
     
    

  • dom/base/ContentAreaDropListener.jsm
    ... ... @@ -5,6 +5,16 @@
    5 5
     const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
    
    6 6
     const { OS } = ChromeUtils.import("resource://gre/modules/osfile.jsm");
    
    7 7
     
    
    8
    +const { XPCOMUtils } = ChromeUtils.import(
    
    9
    +  "resource://gre/modules/XPCOMUtils.jsm"
    
    10
    +);
    
    11
    +
    
    12
    +XPCOMUtils.defineLazyGetter(this, "gOpaqueDrag", () => {
    
    13
    +  return Cc["@torproject.org/torbutton-dragDropFilter;1"].getService(
    
    14
    +    Ci.nsISupports
    
    15
    +  ).wrappedJSObject.opaqueDrag;
    
    16
    +});
    
    17
    +
    
    8 18
     // This component is used for handling dragover and drop of urls.
    
    9 19
     //
    
    10 20
     // It checks to see whether a drop of a url is allowed. For instance, a url
    
    ... ... @@ -43,10 +53,15 @@ ContentAreaDropListener.prototype = {
    43 53
           }
    
    44 54
         }
    
    45 55
     
    
    46
    -    type = "text/x-moz-url";
    
    47
    -    if (types.contains(type)) {
    
    56
    +    for (let type of ["text/x-moz-url", "application/x-torbrowser-opaque"]) {
    
    57
    +      if (!types.contains(type)) {
    
    58
    +        continue;
    
    59
    +      }
    
    48 60
           data = dt.mozGetDataAt(type, i);
    
    49 61
           if (data) {
    
    62
    +        if (type === "application/x-torbrowser-opaque") {
    
    63
    +          ({ type, value: data = "" } = gOpaqueDrag.get(data));
    
    64
    +        }
    
    50 65
             let lines = data.split("\n");
    
    51 66
             for (let i = 0, length = lines.length; i < length; i += 2) {
    
    52 67
               this._addLink(links, lines[i], lines[i + 1], type);
    
    ... ... @@ -250,6 +265,7 @@ ContentAreaDropListener.prototype = {
    250 265
         if (
    
    251 266
           !types.includes("application/x-moz-file") &&
    
    252 267
           !types.includes("text/x-moz-url") &&
    
    268
    +      !types.includes("application/x-torbrowser-opaque") &&
    
    253 269
           !types.includes("text/uri-list") &&
    
    254 270
           !types.includes("text/x-moz-text-internal") &&
    
    255 271
           !types.includes("text/plain")
    

  • toolkit/components/places/PlacesUtils.jsm
    ... ... @@ -32,6 +32,12 @@ XPCOMUtils.defineLazyGetter(this, "gCryptoHash", () => {
    32 32
       return Cc["@mozilla.org/security/hash;1"].createInstance(Ci.nsICryptoHash);
    
    33 33
     });
    
    34 34
     
    
    35
    +XPCOMUtils.defineLazyGetter(this, "gOpaqueDrag", () => {
    
    36
    +  return Cc["@torproject.org/torbutton-dragDropFilter;1"].getService(
    
    37
    +    Ci.nsISupports
    
    38
    +  ).wrappedJSObject.opaqueDrag;
    
    39
    +});
    
    40
    +
    
    35 41
     // On Mac OSX, the transferable system converts "\r\n" to "\n\n", where
    
    36 42
     // we really just want "\n". On other platforms, the transferable system
    
    37 43
     // converts "\r\n" to "\n".
    
    ... ... @@ -1132,6 +1138,9 @@ var PlacesUtils = {
    1132 1138
       unwrapNodes: function PU_unwrapNodes(blob, type) {
    
    1133 1139
         // We split on "\n"  because the transferable system converts "\r\n" to "\n"
    
    1134 1140
         var nodes = [];
    
    1141
    +    if (type === "application/x-torbrowser-opaque") {
    
    1142
    +      ({ value: blob, type } = gOpaqueDrag.get(blob));
    
    1143
    +    }
    
    1135 1144
         switch (type) {
    
    1136 1145
           case this.TYPE_X_MOZ_PLACE:
    
    1137 1146
           case this.TYPE_X_MOZ_PLACE_SEPARATOR:
    

  • toolkit/torproject/torbutton
    1
    -Subproject commit b0a2e740d6c7440cc9722358eb775c6a04f49e72
    1
    +Subproject commit a5767f29c0d509c6cb34527c091ae0c4bfc2f386