Browse Source

more places cleanups

Frank-Rainer Grahl 2 weeks ago
parent
commit
f76a3bd8a0

File diff suppressed because it is too large
+ 455 - 150
comm-release/patches/TOP-1378089-4-WIP-bookmarks-25320.patch


+ 2 - 2
comm-release/patches/series

@@ -2173,8 +2173,6 @@ WIP-521861-Account_Creation.patch
 WIP-9999999-lintglobals.patch
 WIP-9999999-lintglobals.patch
 WIP-1687385-mozconfigs-v2_0-253.patch
 WIP-1687385-mozconfigs-v2_0-253.patch
 WIP-1070492-composer-findbar-v3-25319.patch
 WIP-1070492-composer-findbar-v3-25319.patch
-TOP-1378089-4-WIP-bookmarks-25319.patch
-TOP-1872623-cancelbookmark-25319.patch
 TOP-1906540-mozdevice-removal-comm-25320.patch
 TOP-1906540-mozdevice-removal-comm-25320.patch
 1911830-helpInfo-25320.patch
 1911830-helpInfo-25320.patch
 1911841-browserChromeURL-25320.patch
 1911841-browserChromeURL-25320.patch
@@ -2206,3 +2204,5 @@ TOP-1906540-mozdevice-removal-comm-25320.patch
 1923227-irc-remove-arrayRemoveInsert-25320.patch
 1923227-irc-remove-arrayRemoveInsert-25320.patch
 1923229-irc-remove-stringTrim-25320.patch
 1923229-irc-remove-stringTrim-25320.patch
 1923232-irc-remove-keys-25320.patch
 1923232-irc-remove-keys-25320.patch
+TOP-1378089-4-WIP-bookmarks-25320.patch
+TOP-1872623-cancelbookmark-25319.patch

+ 31 - 0
mozilla-release/patches/1395438-57a1.patch

@@ -0,0 +1,31 @@
+# HG changeset patch
+# User Jared Wein <jwein@mozilla.com>
+# Date 1504153627 14400
+# Node ID 2b3fcd296b8b98cc39b001daf89177998a215321
+# Parent  47bcf3d216458dbb4d42f29ec0c510c0c1d805d0
+Bug 1395438 - The bookmarks panel should fade out when it times out, not close abruptly. r=adw
+
+MozReview-Commit-ID: 2alzsK8M9Xb
+
+diff --git a/browser/base/content/browser-places.js b/browser/base/content/browser-places.js
+--- a/browser/base/content/browser-places.js
++++ b/browser/base/content/browser-places.js
+@@ -224,17 +224,17 @@ var StarUI = {
+         if (this._isNewBookmark && !this._isComposing) {
+           let delay = 3500;
+           if (this._closePanelQuickForTesting) {
+             delay /= 10;
+           }
+           clearTimeout(this._autoCloseTimer);
+           this._autoCloseTimer = setTimeout(() => {
+             if (!this.panel.mozMatchesSelector(":hover")) {
+-              this.panel.hidePopup();
++              this.panel.hidePopup(true);
+             }
+           }, delay);
+           this._autoCloseTimerEnabled = true;
+         }
+         break;
+     }
+   },
+ 

+ 498 - 0
mozilla-release/patches/1432403-60a1.patch

@@ -0,0 +1,498 @@
+# HG changeset patch
+# User hemant <hemantsingh1612@gmail.com>
+# Date 1517910554 -19800
+# Node ID 963786109ed2d5886534f2f6a664f6ebe5a738db
+# Parent  89d6b154d7044de566de9d5432baf8dcc1afa56b
+Bug 1432403 - Remove PlacesUtils._uri r=standard8
+
+MozReview-Commit-ID: C59FOBe80KJ
+
+diff --git a/browser/components/places/PlacesUIUtils.jsm b/browser/components/places/PlacesUIUtils.jsm
+--- a/browser/components/places/PlacesUIUtils.jsm
++++ b/browser/components/places/PlacesUIUtils.jsm
+@@ -766,17 +766,17 @@ var PlacesUIUtils = {
+    *        a window on which a potential error alert is shown on.
+    * @return true if it's safe to open the node in the browser, false otherwise.
+    *
+    */
+   checkURLSecurity: function PUIU_checkURLSecurity(aURINode, aWindow) {
+     if (PlacesUtils.nodeIsBookmark(aURINode))
+       return true;
+ 
+-    var uri = PlacesUtils._uri(aURINode.uri);
++    var uri = Services.io.newURI(aURINode.uri);
+     if (uri.schemeIs("javascript") || uri.schemeIs("data")) {
+       const BRANDING_BUNDLE_URI = "chrome://branding/locale/brand.properties";
+       var brandShortName = Services.strings.
+                            createBundle(BRANDING_BUNDLE_URI).
+                            GetStringFromName("brandShortName");
+ 
+       var errorStr = this.getString("load-js-data-url-error");
+       Services.prompt.alert(aWindow, brandShortName, errorStr);
+@@ -1120,19 +1120,19 @@ var PlacesUIUtils = {
+   guessUrlSchemeForUI: function PUIU_guessUrlSchemeForUI(aUrlString) {
+     return aUrlString.substr(0, aUrlString.indexOf(":"));
+   },
+ 
+   getBestTitle: function PUIU_getBestTitle(aNode, aDoNotCutTitle) {
+     var title;
+     if (!aNode.title && PlacesUtils.nodeIsURI(aNode)) {
+       // if node title is empty, try to set the label using host and filename
+-      // PlacesUtils._uri() will throw if aNode.uri is not a valid URI
++      // Services.io.newURI will throw if aNode.uri is not a valid URI
+       try {
+-        var uri = PlacesUtils._uri(aNode.uri);
++        var uri = Services.io.newURI(aNode.uri);
+         var host = uri.host;
+         var fileName = uri.QueryInterface(Ci.nsIURL).fileName;
+         // if fileName is empty, use path to distinguish labels
+         if (aDoNotCutTitle) {
+           title = host + uri.path;
+         } else {
+           title = host + (fileName ?
+                            (host ? "/" + this.ellipsis + "/" : "") + fileName :
+@@ -1304,17 +1304,17 @@ var PlacesUIUtils = {
+       }
+     }
+ 
+     // Create a new left pane folder.
+     var callback = {
+       // Helper to create an organizer special query.
+       create_query: function CB_create_query(aQueryName, aParentId, aQueryUrl) {
+         let itemId = bs.insertBookmark(aParentId,
+-                                       PlacesUtils._uri(aQueryUrl),
++                                       Services.io.newURI(aQueryUrl),
+                                        bs.DEFAULT_INDEX,
+                                        queries[aQueryName].title);
+         // Mark as special organizer query.
+         as.setItemAnnotation(itemId, PlacesUIUtils.ORGANIZER_QUERY_ANNO, aQueryName,
+                              0, as.EXPIRE_NEVER);
+         // We should never backup this, since it changes between profiles.
+         as.setItemAnnotation(itemId, PlacesUtils.EXCLUDE_FROM_BACKUP_ANNO, 1,
+                              0, as.EXPIRE_NEVER);
+diff --git a/browser/components/places/content/bookmarkProperties.js b/browser/components/places/content/bookmarkProperties.js
+--- a/browser/components/places/content/bookmarkProperties.js
++++ b/browser/components/places/content/bookmarkProperties.js
+@@ -177,17 +177,17 @@ var BookmarkPropertiesPanel = {
+             if (!(dialogInfo.uri instanceof Ci.nsIURI))
+               throw new Error("uri property should be a uri object");
+             this._uri = dialogInfo.uri;
+             if (typeof(this._title) != "string") {
+               this._title = await PlacesUtils.history.fetch(this._uri) ||
+                             this._uri.spec;
+             }
+           } else {
+-            this._uri = PlacesUtils._uri("about:blank");
++            this._uri = Services.io.newURI("about:blank");
+             this._title = this._strings.getString("newBookmarkDefault");
+             this._dummyItem = true;
+           }
+ 
+           if ("loadBookmarkInSidebar" in dialogInfo)
+             this._loadInSidebar = dialogInfo.loadBookmarkInSidebar;
+ 
+           if ("keyword" in dialogInfo) {
+diff --git a/browser/components/places/content/places.js b/browser/components/places/content/places.js
+--- a/browser/components/places/content/places.js
++++ b/browser/components/places/content/places.js
+@@ -631,17 +631,17 @@ var PlacesOrganizer = {
+       detailsDeck.selectedIndex = 1;
+ 
+       gEditItemOverlay.initPanel({ node: selectedNode,
+                                    hiddenRows: ["folderPicker"] });
+ 
+       this._detectAndSetDetailsPaneMinimalState(selectedNode);
+     } else if (!selectedNode && aNodeList[0]) {
+       if (aNodeList.every(PlacesUtils.nodeIsURI)) {
+-        let uris = aNodeList.map(node => PlacesUtils._uri(node.uri));
++        let uris = aNodeList.map(node => Services.io.newURI(node.uri));
+         detailsDeck.selectedIndex = 1;
+         gEditItemOverlay.initPanel({ uris,
+                                      hiddenRows: ["folderPicker",
+                                                   "loadInSidebar",
+                                                   "location",
+                                                   "keyword",
+                                                   "description",
+                                                   "name"]});
+diff --git a/browser/components/places/tests/browser/browser_bookmarksProperties.js b/browser/components/places/tests/browser/browser_bookmarksProperties.js
+--- a/browser/components/places/tests/browser/browser_bookmarksProperties.js
++++ b/browser/components/places/tests/browser/browser_bookmarksProperties.js
+@@ -65,19 +65,19 @@ gTests.push({
+     // Add a bookmark in unsorted bookmarks folder.
+     this._bookmark = await add_bookmark(TEST_URL);
+     Assert.ok(this._bookmark, "Correctly added a bookmark");
+ 
+     this._itemId = await PlacesUtils.promiseItemId(this._bookmark.guid);
+     Assert.ok(this._itemId > 0, "Got an item id for the bookmark");
+ 
+     // Add a tag to this bookmark.
+-    PlacesUtils.tagging.tagURI(PlacesUtils._uri(TEST_URL),
++    PlacesUtils.tagging.tagURI(Services.io.newURI(TEST_URL),
+                                ["testTag"]);
+-    var tags = PlacesUtils.tagging.getTagsForURI(PlacesUtils._uri(TEST_URL));
++    var tags = PlacesUtils.tagging.getTagsForURI(Services.io.newURI(TEST_URL));
+     Assert.equal(tags[0], "testTag", "Correctly added a tag");
+   },
+ 
+   selectNode(tree) {
+     tree.selectItems([PlacesUtils.unfiledBookmarksFolderId]);
+     PlacesUtils.asContainer(tree.selectedNode).containerOpen = true;
+     tree.selectItems([this._itemId]);
+     Assert.equal(tree.selectedNode.itemId, this._itemId, "Bookmark has been selected");
+@@ -143,21 +143,21 @@ gTests.push({
+   },
+ 
+   finish() {
+     SidebarUI.hide();
+   },
+ 
+   async cleanup() {
+     // Check tags have not changed.
+-    var tags = PlacesUtils.tagging.getTagsForURI(PlacesUtils._uri(TEST_URL));
++    var tags = PlacesUtils.tagging.getTagsForURI(Services.io.newURI(TEST_URL));
+     Assert.ok(tags[0], "testTag", "Tag on node has not changed");
+ 
+     // Cleanup.
+-    PlacesUtils.tagging.untagURI(PlacesUtils._uri(TEST_URL), ["testTag"]);
++    PlacesUtils.tagging.untagURI(Services.io.newURI(TEST_URL), ["testTag"]);
+     await PlacesUtils.bookmarks.remove(this._bookmark);
+     let bm = await PlacesUtils.bookmarks.fetch(this._bookmark.guid);
+     Assert.ok(!bm, "should have been removed");
+   }
+ });
+ 
+ // ------------------------------------------------------------------------------
+ // Bug 476020 - Pressing Esc while having the tag autocomplete open closes the bookmarks panel
+@@ -176,19 +176,19 @@ gTests.push({
+     // Add a bookmark in unsorted bookmarks folder.
+     this._bookmark = await add_bookmark(TEST_URL);
+     Assert.ok(this._bookmark, "Correctly added a bookmark");
+ 
+     this._itemId = await PlacesUtils.promiseItemId(this._bookmark.guid);
+     Assert.ok(this._itemId > 0, "Got an item id for the bookmark");
+ 
+     // Add a tag to this bookmark.
+-    PlacesUtils.tagging.tagURI(PlacesUtils._uri(TEST_URL),
++    PlacesUtils.tagging.tagURI(Services.io.newURI(TEST_URL),
+                                ["testTag"]);
+-    var tags = PlacesUtils.tagging.getTagsForURI(PlacesUtils._uri(TEST_URL));
++    var tags = PlacesUtils.tagging.getTagsForURI(Services.io.newURI(TEST_URL));
+     Assert.equal(tags[0], "testTag", "Correctly added a tag");
+   },
+ 
+   selectNode(tree) {
+     tree.selectItems([PlacesUtils.unfiledBookmarksFolderId]);
+     PlacesUtils.asContainer(tree.selectedNode).containerOpen = true;
+     tree.selectItems([this._itemId]);
+     Assert.equal(tree.selectedNode.itemId, this._itemId, "Bookmark has been selected");
+@@ -250,21 +250,21 @@ gTests.push({
+   },
+ 
+   finish() {
+     SidebarUI.hide();
+   },
+ 
+   async cleanup() {
+     // Check tags have not changed.
+-    var tags = PlacesUtils.tagging.getTagsForURI(PlacesUtils._uri(TEST_URL));
++    var tags = PlacesUtils.tagging.getTagsForURI(Services.io.newURI(TEST_URL));
+     Assert.equal(tags[0], "testTag", "Tag on node has not changed");
+ 
+     // Cleanup.
+-    PlacesUtils.tagging.untagURI(PlacesUtils._uri(TEST_URL),
++    PlacesUtils.tagging.untagURI(Services.io.newURI(TEST_URL),
+                                  ["testTag"]);
+     await PlacesUtils.bookmarks.remove(this._bookmark);
+     let bm = await PlacesUtils.bookmarks.fetch(this._bookmark.guid);
+     Assert.ok(!bm, "should have been removed");
+   }
+ });
+ 
+ // ------------------------------------------------------------------------------
+diff --git a/browser/components/places/tests/browser/browser_forgetthissite_single.js b/browser/components/places/tests/browser/browser_forgetthissite_single.js
+--- a/browser/components/places/tests/browser/browser_forgetthissite_single.js
++++ b/browser/components/places/tests/browser/browser_forgetthissite_single.js
+@@ -12,17 +12,17 @@ const TEST_URIs = [
+ // This test makes sure that the Forget This Site command is hidden for multiple
+ // selections.
+ add_task(async function() {
+   // Add a history entry.
+   ok(PlacesUtils, "checking PlacesUtils, running in chrome context?");
+ 
+   let places = [];
+   let transition = PlacesUtils.history.TRANSITION_TYPED;
+-  TEST_URIs.forEach(uri => places.push({uri: PlacesUtils._uri(uri), transition}));
++  TEST_URIs.forEach(uri => places.push({uri: Services.io.newURI(uri), transition}));
+ 
+   await PlacesTestUtils.addVisits(places);
+   await testForgetThisSiteVisibility(1);
+   await testForgetThisSiteVisibility(2);
+ 
+   // Cleanup.
+   await PlacesTestUtils.clearHistory();
+ });
+diff --git a/browser/components/places/tests/browser/browser_library_panel_leak.js b/browser/components/places/tests/browser/browser_library_panel_leak.js
+--- a/browser/components/places/tests/browser/browser_library_panel_leak.js
++++ b/browser/components/places/tests/browser/browser_library_panel_leak.js
+@@ -41,14 +41,14 @@ function test() {
+     // Clean up history.
+     PlacesTestUtils.clearHistory().then(finish);
+   }
+ 
+   waitForExplicitFinish();
+   // Add an history entry.
+   ok(PlacesUtils, "checking PlacesUtils, running in chrome context?");
+   PlacesTestUtils.addVisits(
+-    {uri: PlacesUtils._uri(TEST_URI), visitDate: Date.now() * 1000,
++    {uri: Services.io.newURI(TEST_URI), visitDate: Date.now() * 1000,
+       transition: PlacesUtils.history.TRANSITION_TYPED}
+     ).then(() => {
+       openLibrary(onLibraryReady);
+     });
+ }
+diff --git a/browser/components/places/tests/browser/browser_library_search.js b/browser/components/places/tests/browser/browser_library_search.js
+--- a/browser/components/places/tests/browser/browser_library_search.js
++++ b/browser/components/places/tests/browser/browser_library_search.js
+@@ -139,34 +139,34 @@ function search(aFolderId, aSearchStr, a
+     is(query.hasSearchTerms, false,
+        "Content tree's searchTerms should not exist after search reset");
+   }
+ }
+ 
+ add_task(async function test() {
+   // Add visits, a bookmark and a tag.
+   await PlacesTestUtils.addVisits(
+-    [{ uri: PlacesUtils._uri(TEST_URL), visitDate: Date.now() * 1000,
++    [{ uri: Services.io.newURI(TEST_URL), visitDate: Date.now() * 1000,
+        transition: PlacesUtils.history.TRANSITION_TYPED },
+-     { uri: PlacesUtils._uri(TEST_DOWNLOAD_URL), visitDate: Date.now() * 1000,
++     { uri: Services.io.newURI(TEST_DOWNLOAD_URL), visitDate: Date.now() * 1000,
+        transition: PlacesUtils.history.TRANSITION_DOWNLOAD }]
+     );
+ 
+   await PlacesUtils.bookmarks.insert({
+     parentGuid: PlacesUtils.bookmarks.unfiledGuid,
+     title: "dummy",
+     url: TEST_URL,
+   });
+ 
+-  PlacesUtils.tagging.tagURI(PlacesUtils._uri(TEST_URL), ["dummyTag"]);
++  PlacesUtils.tagging.tagURI(Services.io.newURI(TEST_URL), ["dummyTag"]);
+ 
+   gLibrary = await promiseLibrary();
+ 
+   testCases.forEach(aTest => aTest());
+ 
+   await promiseLibraryClosed(gLibrary);
+ 
+   // Cleanup.
+-  PlacesUtils.tagging.untagURI(PlacesUtils._uri(TEST_URL), ["dummyTag"]);
++  PlacesUtils.tagging.untagURI(Services.io.newURI(TEST_URL), ["dummyTag"]);
+ 
+   await PlacesUtils.bookmarks.eraseEverything();
+   await PlacesUtils.history.clear();
+ });
+diff --git a/browser/components/places/tests/browser/browser_sidebarpanels_click.js b/browser/components/places/tests/browser/browser_sidebarpanels_click.js
+--- a/browser/components/places/tests/browser/browser_sidebarpanels_click.js
++++ b/browser/components/places/tests/browser/browser_sidebarpanels_click.js
+@@ -51,17 +51,17 @@ add_task(async function test_sidebarpane
+     sidebarName: BOOKMARKS_SIDEBAR_ID,
+     treeName: BOOKMARKS_SIDEBAR_TREE_ID,
+     desc: "Bookmarks sidebar test"
+   });
+ 
+   tests.push({
+     async init() {
+       // Add a history entry.
+-      let uri = PlacesUtils._uri(TEST_URL);
++      let uri = Services.io.newURI(TEST_URL);
+       await PlacesTestUtils.addVisits({
+         uri, visitDate: Date.now() * 1000,
+         transition: PlacesUtils.history.TRANSITION_TYPED
+       });
+     },
+     prepare() {
+       sidebar.contentDocument.getElementById("byvisited").doCommand();
+     },
+diff --git a/toolkit/components/places/PlacesUtils.jsm b/toolkit/components/places/PlacesUtils.jsm
+--- a/toolkit/components/places/PlacesUtils.jsm
++++ b/toolkit/components/places/PlacesUtils.jsm
+@@ -338,26 +338,16 @@ var PlacesUtils = {
+   TOPIC_BOOKMARKS_RESTORE_FAILED: "bookmarks-restore-failed",
+ 
+   asContainer: aNode => asContainer(aNode),
+   asQuery: aNode => asQuery(aNode),
+ 
+   endl: NEWLINE,
+ 
+   /**
+-   * Makes a URI from a spec.
+-   * @param   aSpec
+-   *          The string spec of the URI
+-   * @returns A URI object for the spec.
+-   */
+-  _uri: function PU__uri(aSpec) {
+-    return NetUtil.newURI(aSpec);
+-  },
+-
+-  /**
+    * Is a string a valid GUID?
+    *
+    * @param guid: (String)
+    * @return (Boolean)
+    */
+   isValidGuid(guid) {
+     return typeof guid == "string" && guid &&
+            (/^[a-zA-Z0-9\-_]{12}$/.test(guid));
+@@ -938,39 +928,39 @@ var PlacesUtils = {
+         for (let i = 0; i < parts.length; i = i + 2) {
+           let uriString = parts[i];
+           let titleString = "";
+           if (parts.length > i + 1)
+             titleString = parts[i + 1];
+           else {
+             // for drag and drop of files, try to use the leafName as title
+             try {
+-              titleString = this._uri(uriString).QueryInterface(Ci.nsIURL)
++              titleString = Services.io.newURI(uriString).QueryInterface(Ci.nsIURL)
+                                 .fileName;
+             } catch (e) {}
+           }
+-          // note:  this._uri() will throw if uriString is not a valid URI
+-          if (this._uri(uriString)) {
++          // note:  Services.io.newURI() will throw if uriString is not a valid URI
++          if (Services.io.newURI(uriString)) {
+             nodes.push({ uri: uriString,
+                          title: titleString ? titleString : uriString,
+                          type: this.TYPE_X_MOZ_URL });
+           }
+         }
+         break;
+       }
+       case this.TYPE_UNICODE: {
+         let parts = blob.split("\n");
+         for (let i = 0; i < parts.length; i++) {
+           let uriString = parts[i];
+           // text/uri-list is converted to TYPE_UNICODE but it could contain
+           // comments line prepended by #, we should skip them
+           if (uriString.substr(0, 1) == "\x23")
+             continue;
+-          // note: this._uri() will throw if uriString is not a valid URI
+-          if (uriString != "" && this._uri(uriString))
++          // note: Services.io.newURI) will throw if uriString is not a valid URI
++          if (uriString != "" && Services.io.newURI(uriString))
+             nodes.push({ uri: uriString,
+                          title: uriString,
+                          type: this.TYPE_X_MOZ_URL });
+         }
+         break;
+       }
+       default:
+         throw Cr.NS_ERROR_INVALID_ARG;
+diff --git a/toolkit/components/places/tests/bookmarks/test_417228-other-roots.js b/toolkit/components/places/tests/bookmarks/test_417228-other-roots.js
+--- a/toolkit/components/places/tests/bookmarks/test_417228-other-roots.js
++++ b/toolkit/components/places/tests/bookmarks/test_417228-other-roots.js
+@@ -33,17 +33,17 @@ tests.push({
+     this._folderTitle = "test folder";
+     this._folderId =
+       PlacesUtils.bookmarks.createFolder(PlacesUtils.placesRootId,
+                                          this._folderTitle,
+                                          PlacesUtils.bookmarks.DEFAULT_INDEX);
+     Assert.equal(rootNode.childCount, 6);
+ 
+     // add a tag
+-    this._testURI = PlacesUtils._uri("http://test");
++    this._testURI = Services.io.newURI("http://test");
+     this._tags = ["a", "b"];
+     PlacesUtils.tagging.tagURI(this._testURI, this._tags);
+ 
+     // add a child to each root, including our test root
+     this._roots = [PlacesUtils.bookmarksMenuFolderId, PlacesUtils.toolbarFolderId,
+                    PlacesUtils.unfiledBookmarksFolderId, PlacesUtils.mobileFolderId,
+                    this._folderId];
+     this._roots.forEach(function(aRootId) {
+@@ -106,17 +106,17 @@ tests.push({
+           Assert.equal(node.title, this._folderTitle);
+           foundTestFolder++;
+         }
+ 
+         // test contents
+         node.QueryInterface(Ci.nsINavHistoryContainerResultNode).containerOpen = true;
+         Assert.equal(node.childCount, 1);
+         var child = node.getChild(0);
+-        Assert.ok(PlacesUtils._uri(child.uri).equals(this._testURI));
++        Assert.ok(Services.io.newURI(child.uri).equals(this._testURI));
+ 
+         // clean up
+         node.containerOpen = false;
+       }
+     }
+     Assert.equal(foundTestFolder, 1);
+     rootNode.containerOpen = false;
+   }
+diff --git a/toolkit/components/places/tests/bookmarks/test_458683.js b/toolkit/components/places/tests/bookmarks/test_458683.js
+--- a/toolkit/components/places/tests/bookmarks/test_458683.js
++++ b/toolkit/components/places/tests/bookmarks/test_458683.js
+@@ -18,22 +18,22 @@ var invalidTagChildTest = {
+   _itemId: -1,
+   _tag: "testTag",
+   _tagItemId: -1,
+ 
+   populate() {
+     // add a valid bookmark
+     this._itemId = PlacesUtils.bookmarks
+                               .insertBookmark(PlacesUtils.toolbarFolderId,
+-                                              PlacesUtils._uri(this._itemUrl),
++                                              Services.io.newURI(this._itemUrl),
+                                               PlacesUtils.bookmarks.DEFAULT_INDEX,
+                                               this._itemTitle);
+ 
+     // create a tag
+-    PlacesUtils.tagging.tagURI(PlacesUtils._uri(this._itemUrl), [this._tag]);
++    PlacesUtils.tagging.tagURI(Services.io.newURI(this._itemUrl), [this._tag]);
+     // get tag folder id
+     var options = PlacesUtils.history.getNewQueryOptions();
+     var query = PlacesUtils.history.getNewQuery();
+     query.setFolders([PlacesUtils.bookmarks.tagsFolder], 1);
+     var result = PlacesUtils.history.executeQuery(query, options);
+     var tagRoot = result.root;
+     tagRoot.containerOpen = true;
+     Assert.equal(tagRoot.childCount, 1);
+@@ -53,17 +53,17 @@ var invalidTagChildTest = {
+     PlacesUtils.bookmarks.insertSeparator(PlacesUtils.bookmarks.tagsFolder,
+                                           PlacesUtils.bookmarks.DEFAULT_INDEX);
+     PlacesUtils.bookmarks.createFolder(PlacesUtils.bookmarks.tagsFolder,
+                                        "test tags root folder",
+                                        PlacesUtils.bookmarks.DEFAULT_INDEX);
+   },
+ 
+   clean() {
+-    PlacesUtils.tagging.untagURI(PlacesUtils._uri(this._itemUrl), [this._tag]);
++    PlacesUtils.tagging.untagURI(Services.io.newURI(this._itemUrl), [this._tag]);
+     PlacesUtils.bookmarks.removeItem(this._itemId);
+   },
+ 
+   validate() {
+     var query = PlacesUtils.history.getNewQuery();
+     query.setFolders([PlacesUtils.bookmarks.toolbarFolder], 1);
+     var options = PlacesUtils.history.getNewQueryOptions();
+     var result = PlacesUtils.history.executeQuery(query, options);
+@@ -76,17 +76,17 @@ var invalidTagChildTest = {
+     for (var i = 0; i < toolbar.childCount; i++) {
+       var folderNode = toolbar.getChild(0);
+       Assert.equal(folderNode.type, folderNode.RESULT_TYPE_URI);
+       Assert.equal(folderNode.title, this._itemTitle);
+     }
+     toolbar.containerOpen = false;
+ 
+     // test for our tag
+-    var tags = PlacesUtils.tagging.getTagsForURI(PlacesUtils._uri(this._itemUrl));
++    var tags = PlacesUtils.tagging.getTagsForURI(Services.io.newURI(this._itemUrl));
+     Assert.equal(tags.length, 1);
+     Assert.equal(tags[0], this._tag);
+   }
+ };
+ tests.push(invalidTagChildTest);
+ 
+ add_task(async function() {
+   let jsonFile = OS.Path.join(OS.Constants.Path.profileDir, "bookmarks.json");

+ 2 - 0
mozilla-release/patches/series

@@ -7650,6 +7650,8 @@ TOP-NOBUG-nsstyle-prefers-reduced-motion.patch
 TOP-1909714-NSS3904-11514.patch
 TOP-1909714-NSS3904-11514.patch
 TOP-NOBUG-blockquad0-25319.patch
 TOP-NOBUG-blockquad0-25319.patch
 TOP-NOBUG-fixnasmcheck-25320.patch
 TOP-NOBUG-fixnasmcheck-25320.patch
+1395438-57a1.patch
+1432403-60a1.patch
 977538-61a1.patch
 977538-61a1.patch
 1479945-1no2-63a1.patch
 1479945-1no2-63a1.patch
 1479945-3no4-63a1.patch
 1479945-3no4-63a1.patch

Some files were not shown because too many files changed in this diff