diff options
author | Moonchild <mcwerewolf@wolfbeast.com> | 2019-03-25 18:03:03 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-25 18:03:03 +0100 |
commit | aa816b3d848d38c83204c3dd1a1d0b86013978b4 (patch) | |
tree | e96cabae4a274f8bf5a53c12a9b200fbf47d74f1 /toolkit | |
parent | 24b1f14e0264152242a260dbc7e48b62206d1b17 (diff) | |
parent | 1413b3d6fd7297014d35d862abc792dc30c1ec24 (diff) | |
download | UXP-aa816b3d848d38c83204c3dd1a1d0b86013978b4.tar UXP-aa816b3d848d38c83204c3dd1a1d0b86013978b4.tar.gz UXP-aa816b3d848d38c83204c3dd1a1d0b86013978b4.tar.lz UXP-aa816b3d848d38c83204c3dd1a1d0b86013978b4.tar.xz UXP-aa816b3d848d38c83204c3dd1a1d0b86013978b4.zip |
Merge pull request #834 from g4jc/remove_contextid
Issue #756 - Remove Contextual Identity
Diffstat (limited to 'toolkit')
7 files changed, 41 insertions, 155 deletions
diff --git a/toolkit/components/places/UnifiedComplete.js b/toolkit/components/places/UnifiedComplete.js index 2efae9cbe..ec5f91111 100644 --- a/toolkit/components/places/UnifiedComplete.js +++ b/toolkit/components/places/UnifiedComplete.js @@ -124,9 +124,7 @@ function defaultQuery(conditions = "") { h.visit_count, h.typed, h.id, t.open_count, h.frecency FROM moz_places h LEFT JOIN moz_favicons f ON f.id = h.favicon_id - LEFT JOIN moz_openpages_temp t - ON t.url = h.url - AND t.userContextId = :userContextId + LEFT JOIN moz_openpages_temp t ON t.url = h.url WHERE h.frecency <> 0 AND AUTOCOMPLETE_MATCH(:searchString, h.url, CASE WHEN bookmarked THEN @@ -150,7 +148,6 @@ const SQL_SWITCHTAB_QUERY = FROM moz_openpages_temp t LEFT JOIN moz_places h ON h.url_hash = hash(t.url) AND h.url = t.url WHERE h.id IS NULL - AND t.userContextId = :userContextId AND AUTOCOMPLETE_MATCH(:searchString, t.url, t.url, NULL, NULL, NULL, NULL, t.open_count, :matchBehavior, :searchBehavior) @@ -170,9 +167,7 @@ const SQL_ADAPTIVE_QUERY = ) AS i JOIN moz_places h ON h.id = i.place_id LEFT JOIN moz_favicons f ON f.id = h.favicon_id - LEFT JOIN moz_openpages_temp t - ON t.url = h.url - AND t.userContextId = :userContextId + LEFT JOIN moz_openpages_temp t ON t.url = h.url WHERE AUTOCOMPLETE_MATCH(NULL, h.url, IFNULL(btitle, h.title), tags, h.visit_count, h.typed, bookmarked, @@ -301,17 +296,15 @@ XPCOMUtils.defineLazyServiceGetter(this, "textURIService", XPCOMUtils.defineLazyGetter(this, "SwitchToTabStorage", () => Object.seal({ _conn: null, // Temporary queue used while the database connection is not available. - _queue: new Map(), + _queue: new Set(), initDatabase: Task.async(function* (conn) { // To reduce IO use an in-memory table for switch-to-tab tracking. // Note: this should be kept up-to-date with the definition in // nsPlacesTables.h. yield conn.execute( `CREATE TEMP TABLE moz_openpages_temp ( - url TEXT, - userContextId INTEGER, - open_count INTEGER, - PRIMARY KEY (url, userContextId) + url TEXT PRIMARY KEY, + open_count INTEGER )`); // Note: this should be kept up-to-date with the definition in @@ -322,64 +315,44 @@ XPCOMUtils.defineLazyGetter(this, "SwitchToTabStorage", () => Object.seal({ WHEN NEW.open_count = 0 BEGIN DELETE FROM moz_openpages_temp - WHERE url = NEW.url - AND userContextId = NEW.userContextId; + WHERE url = NEW.url; END`); this._conn = conn; // Populate the table with the current cache contents... - for (let [userContextId, uris] of this._queue) { - for (let uri of uris) { - this.add(uri, userContextId); - } - } + this._queue.forEach(this.add, this); // ...then clear it to avoid double additions. this._queue.clear(); }), - add(uri, userContextId) { + add: function (uri) { if (!this._conn) { - if (!this._queue.has(userContextId)) { - this._queue.set(userContextId, new Set()); - } - this._queue.get(userContextId).add(uri); + this._queue.add(uri); return; } this._conn.executeCached( - `INSERT OR REPLACE INTO moz_openpages_temp (url, userContextId, open_count) - VALUES ( :url, - :userContextId, - IFNULL( ( SELECT open_count + 1 - FROM moz_openpages_temp - WHERE url = :url - AND userContextId = :userContextId ), - 1 - ) + `INSERT OR REPLACE INTO moz_openpages_temp (url, open_count) + VALUES ( :url, IFNULL( (SELECT open_count + 1 + FROM moz_openpages_temp + WHERE url = :url), + 1 + ) )` - , { url: uri.spec, userContextId }); + , { url: uri.spec }); }, - delete(uri, userContextId) { + delete: function (uri) { if (!this._conn) { - // This should not happen. - if (!this._queue.has(userContextId)) { - throw new Error("Unknown userContextId!"); - } - - this._queue.get(userContextId).delete(uri); - if (this._queue.get(userContextId).size == 0) { - this._queue.delete(userContextId); - } + this._queue.delete(uri); return; } this._conn.executeCached( `UPDATE moz_openpages_temp SET open_count = open_count - 1 - WHERE url = :url - AND userContextId = :userContextId` - , { url: uri.spec, userContextId }); + WHERE url = :url` + , { url: uri.spec }); }, shutdown: function () { @@ -1781,7 +1754,6 @@ Search.prototype = { // We only want to search the tokens that we are left with - not the // original search string. searchString: this._searchTokens.join(" "), - userContextId: this._userContextId, // Limit the query to the the maximum number of desired results. // This way we can avoid doing more work than needed. maxResults: Prefs.maxRichResults @@ -1805,7 +1777,6 @@ Search.prototype = { // We only want to search the tokens that we are left with - not the // original search string. searchString: this._searchTokens.join(" "), - userContextId: this._userContextId, maxResults: Prefs.maxRichResults } ]; @@ -1825,8 +1796,7 @@ Search.prototype = { search_string: this._searchString, query_type: QUERYTYPE_FILTERED, matchBehavior: this._matchBehavior, - searchBehavior: this._behavior, - userContextId: this._userContextId, + searchBehavior: this._behavior } ]; }, @@ -2010,12 +1980,12 @@ UnifiedComplete.prototype = { // mozIPlacesAutoComplete - registerOpenPage(uri, userContextId) { - SwitchToTabStorage.add(uri, userContextId); + registerOpenPage: function PAC_registerOpenPage(uri) { + SwitchToTabStorage.add(uri); }, - unregisterOpenPage(uri, userContextId) { - SwitchToTabStorage.delete(uri, userContextId); + unregisterOpenPage: function PAC_unregisterOpenPage(uri) { + SwitchToTabStorage.delete(uri); }, // nsIAutoCompleteSearch diff --git a/toolkit/components/places/mozIPlacesAutoComplete.idl b/toolkit/components/places/mozIPlacesAutoComplete.idl index 7f3247fdc..6ff82e667 100644 --- a/toolkit/components/places/mozIPlacesAutoComplete.idl +++ b/toolkit/components/places/mozIPlacesAutoComplete.idl @@ -116,10 +116,8 @@ interface mozIPlacesAutoComplete : nsISupports * * @param aURI * The URI to register as an open page. - * @param aUserContextId - * The Container Id of the tab. */ - void registerOpenPage(in nsIURI aURI, in uint32_t aUserContextId); + void registerOpenPage(in nsIURI aURI); /** * Mark a page as no longer being open (either by closing the window or tab, @@ -131,8 +129,6 @@ interface mozIPlacesAutoComplete : nsISupports * * @param aURI * The URI to unregister as an open page. - * @param aUserContextId - * The Container Id of the tab. */ - void unregisterOpenPage(in nsIURI aURI, in uint32_t aUserContextId); + void unregisterOpenPage(in nsIURI aURI); }; diff --git a/toolkit/components/places/nsPlacesTables.h b/toolkit/components/places/nsPlacesTables.h index aca92735e..0b6e414fb 100644 --- a/toolkit/components/places/nsPlacesTables.h +++ b/toolkit/components/places/nsPlacesTables.h @@ -133,10 +133,8 @@ // nsPlacesAutoComplete.js. #define CREATE_MOZ_OPENPAGES_TEMP NS_LITERAL_CSTRING( \ "CREATE TEMP TABLE moz_openpages_temp (" \ - " url TEXT" \ - ", userContextId INTEGER" \ + " url TEXT PRIMARY KEY" \ ", open_count INTEGER" \ - ", PRIMARY KEY (url, userContextId)" \ ")" \ ) diff --git a/toolkit/components/places/nsPlacesTriggers.h b/toolkit/components/places/nsPlacesTriggers.h index d5b45ff5e..37871a3eb 100644 --- a/toolkit/components/places/nsPlacesTriggers.h +++ b/toolkit/components/places/nsPlacesTriggers.h @@ -192,8 +192,7 @@ "WHEN NEW.open_count = 0 " \ "BEGIN " \ "DELETE FROM moz_openpages_temp " \ - "WHERE url = NEW.url " \ - "AND userContextId = NEW.userContextId;" \ + "WHERE url = NEW.url;" \ "END" \ ) diff --git a/toolkit/components/places/tests/unifiedcomplete/head_autocomplete.js b/toolkit/components/places/tests/unifiedcomplete/head_autocomplete.js index 11e917e18..bc252efe0 100644 --- a/toolkit/components/places/tests/unifiedcomplete/head_autocomplete.js +++ b/toolkit/components/places/tests/unifiedcomplete/head_autocomplete.js @@ -286,19 +286,19 @@ var addBookmark = Task.async(function* (aBookmarkObj) { } }); -function addOpenPages(aUri, aCount=1, aUserContextId=0) { +function addOpenPages(aUri, aCount=1) { let ac = Cc["@mozilla.org/autocomplete/search;1?name=unifiedcomplete"] .getService(Ci.mozIPlacesAutoComplete); for (let i = 0; i < aCount; i++) { - ac.registerOpenPage(aUri, aUserContextId); + ac.registerOpenPage(aUri); } } -function removeOpenPages(aUri, aCount=1, aUserContextId=0) { +function removeOpenPages(aUri, aCount=1) { let ac = Cc["@mozilla.org/autocomplete/search;1?name=unifiedcomplete"] .getService(Ci.mozIPlacesAutoComplete); for (let i = 0; i < aCount; i++) { - ac.unregisterOpenPage(aUri, aUserContextId); + ac.unregisterOpenPage(aUri); } } diff --git a/toolkit/components/places/tests/unifiedcomplete/test_tab_matches.js b/toolkit/components/places/tests/unifiedcomplete/test_tab_matches.js index 740b8d8ed..646519c32 100644 --- a/toolkit/components/places/tests/unifiedcomplete/test_tab_matches.js +++ b/toolkit/components/places/tests/unifiedcomplete/test_tab_matches.js @@ -11,11 +11,9 @@ add_task(function* test_tab_matches() { let uri2 = NetUtil.newURI("http://xyz.net/"); let uri3 = NetUtil.newURI("about:mozilla"); let uri4 = NetUtil.newURI("data:text/html,test"); - let uri5 = NetUtil.newURI("http://foobar.org"); yield PlacesTestUtils.addVisits([ { uri: uri1, title: "ABC rocks" }, - { uri: uri2, title: "xyz.net - we're better than ABC" }, - { uri: uri5, title: "foobar.org - much better than ABC, definitely better than XYZ" } + { uri: uri2, title: "xyz.net - we're better than ABC" } ]); addOpenPages(uri1, 1); // Pages that cannot be registered in history. @@ -37,8 +35,7 @@ add_task(function* test_tab_matches() { searchParam: "enable-actions", matches: [ makeSearchMatch("abc", { heuristic: true }), makeSwitchToTabMatch("http://abc.com/", { title: "ABC rocks" }), - { uri: uri2, title: "xyz.net - we're better than ABC", style: [ "favicon" ] }, - { uri: uri5, title: "foobar.org - much better than ABC, definitely better than XYZ", style: [ "favicon" ] } ] + { uri: uri2, title: "xyz.net - we're better than ABC", style: [ "favicon" ] } ] }); do_print("three results, both normal results are tab matches"); @@ -48,39 +45,7 @@ add_task(function* test_tab_matches() { searchParam: "enable-actions", matches: [ makeSearchMatch("abc", { heuristic: true }), makeSwitchToTabMatch("http://abc.com/", { title: "ABC rocks" }), - makeSwitchToTabMatch("http://xyz.net/", { title: "xyz.net - we're better than ABC" }), - { uri: uri5, title: "foobar.org - much better than ABC, definitely better than XYZ", style: [ "favicon" ] } ] - }); - - do_print("a container tab is not visible in 'switch to tab'"); - addOpenPages(uri5, 1, /* userContextId: */ 3); - yield check_autocomplete({ - search: "abc", - searchParam: "enable-actions", - matches: [ makeSearchMatch("abc", { heuristic: true }), - makeSwitchToTabMatch("http://abc.com/", { title: "ABC rocks" }), - makeSwitchToTabMatch("http://xyz.net/", { title: "xyz.net - we're better than ABC" }), - { uri: uri5, title: "foobar.org - much better than ABC, definitely better than XYZ", style: [ "favicon" ] } ] - }); - - do_print("a container tab should not see 'switch to tab' for other container tabs"); - yield check_autocomplete({ - search: "abc", - searchParam: "enable-actions user-context-id:3", - matches: [ makeSearchMatch("abc", { heuristic: true }), - makeSwitchToTabMatch("http://foobar.org/", { title: "foobar.org - much better than ABC, definitely better than XYZ" }), - { uri: uri1, title: "ABC rocks", style: [ "favicon" ] }, - { uri: uri2, title: "xyz.net - we're better than ABC", style: [ "favicon" ] } ] - }); - - do_print("a different container tab should not see any 'switch to tab'"); - yield check_autocomplete({ - search: "abc", - searchParam: "enable-actions user-context-id:2", - matches: [ makeSearchMatch("abc", { heuristic: true }), - { uri: uri1, title: "ABC rocks", style: [ "favicon" ] }, - { uri: uri2, title: "xyz.net - we're better than ABC", style: [ "favicon" ] }, - { uri: uri5, title: "foobar.org - much better than ABC, definitely better than XYZ", style: [ "favicon" ] } ] + makeSwitchToTabMatch("http://xyz.net/", { title: "xyz.net - we're better than ABC" }) ] }); do_print("three results, both normal results are tab matches, one has multiple tabs"); @@ -90,8 +55,7 @@ add_task(function* test_tab_matches() { searchParam: "enable-actions", matches: [ makeSearchMatch("abc", { heuristic: true }), makeSwitchToTabMatch("http://abc.com/", { title: "ABC rocks" }), - makeSwitchToTabMatch("http://xyz.net/", { title: "xyz.net - we're better than ABC" }), - { uri: uri5, title: "foobar.org - much better than ABC, definitely better than XYZ", style: [ "favicon" ] } ] + makeSwitchToTabMatch("http://xyz.net/", { title: "xyz.net - we're better than ABC" }) ] }); do_print("three results, no tab matches (disable-private-actions)"); @@ -100,8 +64,7 @@ add_task(function* test_tab_matches() { searchParam: "enable-actions disable-private-actions", matches: [ makeSearchMatch("abc", { heuristic: true }), { uri: uri1, title: "ABC rocks", style: [ "favicon" ] }, - { uri: uri2, title: "xyz.net - we're better than ABC", style: [ "favicon" ] }, - { uri: uri5, title: "foobar.org - much better than ABC, definitely better than XYZ", style: [ "favicon" ] } ] + { uri: uri2, title: "xyz.net - we're better than ABC", style: [ "favicon" ] } ] }); do_print("two results (actions disabled)"); @@ -109,8 +72,7 @@ add_task(function* test_tab_matches() { search: "abc", searchParam: "", matches: [ { uri: uri1, title: "ABC rocks", style: [ "favicon" ] }, - { uri: uri2, title: "xyz.net - we're better than ABC", style: [ "favicon" ] }, - { uri: uri5, title: "foobar.org - much better than ABC, definitely better than XYZ", style: [ "favicon" ] } ] + { uri: uri2, title: "xyz.net - we're better than ABC", style: [ "favicon" ] } ] }); do_print("three results, no tab matches"); @@ -121,8 +83,7 @@ add_task(function* test_tab_matches() { searchParam: "enable-actions", matches: [ makeSearchMatch("abc", { heuristic: true }), { uri: uri1, title: "ABC rocks", style: [ "favicon" ] }, - { uri: uri2, title: "xyz.net - we're better than ABC", style: [ "favicon" ] }, - { uri: uri5, title: "foobar.org - much better than ABC, definitely better than XYZ", style: [ "favicon" ] } ] + { uri: uri2, title: "xyz.net - we're better than ABC", style: [ "favicon" ] } ] }); do_print("tab match search with restriction character"); diff --git a/toolkit/components/thumbnails/BackgroundPageThumbs.jsm b/toolkit/components/thumbnails/BackgroundPageThumbs.jsm index 3ba0c346c..3ed32665d 100644 --- a/toolkit/components/thumbnails/BackgroundPageThumbs.jsm +++ b/toolkit/components/thumbnails/BackgroundPageThumbs.jsm @@ -15,8 +15,6 @@ const TELEMETRY_HISTOGRAM_ID_PREFIX = "FX_THUMBNAILS_BG_"; const XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; const HTML_NS = "http://www.w3.org/1999/xhtml"; -const ABOUT_NEWTAB_SEGREGATION_PREF = "privacy.usercontext.about_newtab_segregation.enabled"; - const { classes: Cc, interfaces: Ci, utils: Cu } = Components; Cu.import("resource://gre/modules/XPCOMUtils.jsm", this); @@ -37,8 +35,6 @@ XPCOMUtils.defineConstant(this, "TEL_CAPTURE_DONE_TIMEOUT", TEL_CAPTURE_DONE_TIM XPCOMUtils.defineConstant(this, "TEL_CAPTURE_DONE_CRASHED", TEL_CAPTURE_DONE_CRASHED); XPCOMUtils.defineConstant(this, "TEL_CAPTURE_DONE_BAD_URI", TEL_CAPTURE_DONE_BAD_URI); -XPCOMUtils.defineLazyModuleGetter(this, "ContextualIdentityService", - "resource://gre/modules/ContextualIdentityService.jsm"); const global = this; // contains base64 version of a placeholder thumbnail @@ -139,14 +135,6 @@ const BackgroundPageThumbs = { }), /** - * Tell the service that the thumbnail browser should be recreated at next - * call of _ensureBrowser(). - */ - renewThumbnailBrowser: function() { - this._renewThumbBrowser = true; - }, - - /** * Ensures that initialization of the thumbnail browser's parent window has * begun. * @@ -201,12 +189,9 @@ const BackgroundPageThumbs = { * Creates the thumbnail browser if it doesn't already exist. */ _ensureBrowser: function () { - if (this._thumbBrowser && !this._renewThumbBrowser) + if (this._thumbBrowser) return; - this._destroyBrowser(); - this._renewThumbBrowser = false; - let browser = this._parentWin.document.createElementNS(XUL_NS, "browser"); browser.setAttribute("type", "content"); browser.setAttribute("disableglobalhistory", "true"); @@ -216,13 +201,6 @@ const BackgroundPageThumbs = { browser.setAttribute("remote", "true"); } - if (Services.prefs.getBoolPref(ABOUT_NEWTAB_SEGREGATION_PREF)) { - // Use the private container for thumbnails. - let privateIdentity = - ContextualIdentityService.getPrivateIdentity("userContextIdInternal.thumbnail"); - browser.setAttribute("usercontextid", privateIdentity.userContextId); - } - // Size the browser. Make its aspect ratio the same as the canvases' that // the thumbnails are drawn into; the canvases' aspect ratio is the same as // the screen's, so use that. Aim for a size in the ballpark of 1024x768. @@ -325,14 +303,6 @@ const BackgroundPageThumbs = { _destroyBrowserTimeout: DESTROY_BROWSER_TIMEOUT, }; -Services.prefs.addObserver(ABOUT_NEWTAB_SEGREGATION_PREF, - function(aSubject, aTopic, aData) { - if (aTopic == "nsPref:changed" && aData == ABOUT_NEWTAB_SEGREGATION_PREF) { - BackgroundPageThumbs.renewThumbnailBrowser(); - } - }, - false); - Object.defineProperty(this, "BackgroundPageThumbs", { value: BackgroundPageThumbs, enumerable: true, @@ -467,14 +437,6 @@ Capture.prototype = { Cu.reportError(err); } } - - if (Services.prefs.getBoolPref(ABOUT_NEWTAB_SEGREGATION_PREF)) { - // Clear the data in the private container for thumbnails. - let privateIdentity = - ContextualIdentityService.getPrivateIdentity("userContextIdInternal.thumbnail"); - Services.obs.notifyObservers(null, "clear-origin-attributes-data", - JSON.stringify({ userContextId: privateIdentity.userContextId })); - } }; if (!data) { |