mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-28 01:57:30 +09:00
Issue #756 - Remove Contextual Identity from UnifiedComplete
reverts m-c 1287866
This commit is contained in:
parent
ac50c95756
commit
50bf383712
6 changed files with 40 additions and 116 deletions
|
|
@ -124,9 +124,7 @@ function defaultQuery(conditions = "") {
|
||||||
h.visit_count, h.typed, h.id, t.open_count, h.frecency
|
h.visit_count, h.typed, h.id, t.open_count, h.frecency
|
||||||
FROM moz_places h
|
FROM moz_places h
|
||||||
LEFT JOIN moz_favicons f ON f.id = h.favicon_id
|
LEFT JOIN moz_favicons f ON f.id = h.favicon_id
|
||||||
LEFT JOIN moz_openpages_temp t
|
LEFT JOIN moz_openpages_temp t ON t.url = h.url
|
||||||
ON t.url = h.url
|
|
||||||
AND t.userContextId = :userContextId
|
|
||||||
WHERE h.frecency <> 0
|
WHERE h.frecency <> 0
|
||||||
AND AUTOCOMPLETE_MATCH(:searchString, h.url,
|
AND AUTOCOMPLETE_MATCH(:searchString, h.url,
|
||||||
CASE WHEN bookmarked THEN
|
CASE WHEN bookmarked THEN
|
||||||
|
|
@ -150,7 +148,6 @@ const SQL_SWITCHTAB_QUERY =
|
||||||
FROM moz_openpages_temp t
|
FROM moz_openpages_temp t
|
||||||
LEFT JOIN moz_places h ON h.url_hash = hash(t.url) AND h.url = t.url
|
LEFT JOIN moz_places h ON h.url_hash = hash(t.url) AND h.url = t.url
|
||||||
WHERE h.id IS NULL
|
WHERE h.id IS NULL
|
||||||
AND t.userContextId = :userContextId
|
|
||||||
AND AUTOCOMPLETE_MATCH(:searchString, t.url, t.url, NULL,
|
AND AUTOCOMPLETE_MATCH(:searchString, t.url, t.url, NULL,
|
||||||
NULL, NULL, NULL, t.open_count,
|
NULL, NULL, NULL, t.open_count,
|
||||||
:matchBehavior, :searchBehavior)
|
:matchBehavior, :searchBehavior)
|
||||||
|
|
@ -170,9 +167,7 @@ const SQL_ADAPTIVE_QUERY =
|
||||||
) AS i
|
) AS i
|
||||||
JOIN moz_places h ON h.id = i.place_id
|
JOIN moz_places h ON h.id = i.place_id
|
||||||
LEFT JOIN moz_favicons f ON f.id = h.favicon_id
|
LEFT JOIN moz_favicons f ON f.id = h.favicon_id
|
||||||
LEFT JOIN moz_openpages_temp t
|
LEFT JOIN moz_openpages_temp t ON t.url = h.url
|
||||||
ON t.url = h.url
|
|
||||||
AND t.userContextId = :userContextId
|
|
||||||
WHERE AUTOCOMPLETE_MATCH(NULL, h.url,
|
WHERE AUTOCOMPLETE_MATCH(NULL, h.url,
|
||||||
IFNULL(btitle, h.title), tags,
|
IFNULL(btitle, h.title), tags,
|
||||||
h.visit_count, h.typed, bookmarked,
|
h.visit_count, h.typed, bookmarked,
|
||||||
|
|
@ -301,17 +296,15 @@ XPCOMUtils.defineLazyServiceGetter(this, "textURIService",
|
||||||
XPCOMUtils.defineLazyGetter(this, "SwitchToTabStorage", () => Object.seal({
|
XPCOMUtils.defineLazyGetter(this, "SwitchToTabStorage", () => Object.seal({
|
||||||
_conn: null,
|
_conn: null,
|
||||||
// Temporary queue used while the database connection is not available.
|
// Temporary queue used while the database connection is not available.
|
||||||
_queue: new Map(),
|
_queue: new Set(),
|
||||||
initDatabase: Task.async(function* (conn) {
|
initDatabase: Task.async(function* (conn) {
|
||||||
// To reduce IO use an in-memory table for switch-to-tab tracking.
|
// 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
|
// Note: this should be kept up-to-date with the definition in
|
||||||
// nsPlacesTables.h.
|
// nsPlacesTables.h.
|
||||||
yield conn.execute(
|
yield conn.execute(
|
||||||
`CREATE TEMP TABLE moz_openpages_temp (
|
`CREATE TEMP TABLE moz_openpages_temp (
|
||||||
url TEXT,
|
url TEXT PRIMARY KEY,
|
||||||
userContextId INTEGER,
|
open_count INTEGER
|
||||||
open_count INTEGER,
|
|
||||||
PRIMARY KEY (url, userContextId)
|
|
||||||
)`);
|
)`);
|
||||||
|
|
||||||
// Note: this should be kept up-to-date with the definition in
|
// 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
|
WHEN NEW.open_count = 0
|
||||||
BEGIN
|
BEGIN
|
||||||
DELETE FROM moz_openpages_temp
|
DELETE FROM moz_openpages_temp
|
||||||
WHERE url = NEW.url
|
WHERE url = NEW.url;
|
||||||
AND userContextId = NEW.userContextId;
|
|
||||||
END`);
|
END`);
|
||||||
|
|
||||||
this._conn = conn;
|
this._conn = conn;
|
||||||
|
|
||||||
// Populate the table with the current cache contents...
|
// Populate the table with the current cache contents...
|
||||||
for (let [userContextId, uris] of this._queue) {
|
this._queue.forEach(this.add, this);
|
||||||
for (let uri of uris) {
|
|
||||||
this.add(uri, userContextId);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// ...then clear it to avoid double additions.
|
// ...then clear it to avoid double additions.
|
||||||
this._queue.clear();
|
this._queue.clear();
|
||||||
}),
|
}),
|
||||||
|
|
||||||
add(uri, userContextId) {
|
add: function (uri) {
|
||||||
if (!this._conn) {
|
if (!this._conn) {
|
||||||
if (!this._queue.has(userContextId)) {
|
this._queue.add(uri);
|
||||||
this._queue.set(userContextId, new Set());
|
|
||||||
}
|
|
||||||
this._queue.get(userContextId).add(uri);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this._conn.executeCached(
|
this._conn.executeCached(
|
||||||
`INSERT OR REPLACE INTO moz_openpages_temp (url, userContextId, open_count)
|
`INSERT OR REPLACE INTO moz_openpages_temp (url, open_count)
|
||||||
VALUES ( :url,
|
VALUES ( :url, IFNULL( (SELECT open_count + 1
|
||||||
:userContextId,
|
FROM moz_openpages_temp
|
||||||
IFNULL( ( SELECT open_count + 1
|
WHERE url = :url),
|
||||||
FROM moz_openpages_temp
|
1
|
||||||
WHERE url = :url
|
)
|
||||||
AND userContextId = :userContextId ),
|
|
||||||
1
|
|
||||||
)
|
|
||||||
)`
|
)`
|
||||||
, { url: uri.spec, userContextId });
|
, { url: uri.spec });
|
||||||
},
|
},
|
||||||
|
|
||||||
delete(uri, userContextId) {
|
delete: function (uri) {
|
||||||
if (!this._conn) {
|
if (!this._conn) {
|
||||||
// This should not happen.
|
this._queue.delete(uri);
|
||||||
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);
|
|
||||||
}
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this._conn.executeCached(
|
this._conn.executeCached(
|
||||||
`UPDATE moz_openpages_temp
|
`UPDATE moz_openpages_temp
|
||||||
SET open_count = open_count - 1
|
SET open_count = open_count - 1
|
||||||
WHERE url = :url
|
WHERE url = :url`
|
||||||
AND userContextId = :userContextId`
|
, { url: uri.spec });
|
||||||
, { url: uri.spec, userContextId });
|
|
||||||
},
|
},
|
||||||
|
|
||||||
shutdown: function () {
|
shutdown: function () {
|
||||||
|
|
@ -1781,7 +1754,6 @@ Search.prototype = {
|
||||||
// We only want to search the tokens that we are left with - not the
|
// We only want to search the tokens that we are left with - not the
|
||||||
// original search string.
|
// original search string.
|
||||||
searchString: this._searchTokens.join(" "),
|
searchString: this._searchTokens.join(" "),
|
||||||
userContextId: this._userContextId,
|
|
||||||
// Limit the query to the the maximum number of desired results.
|
// Limit the query to the the maximum number of desired results.
|
||||||
// This way we can avoid doing more work than needed.
|
// This way we can avoid doing more work than needed.
|
||||||
maxResults: Prefs.maxRichResults
|
maxResults: Prefs.maxRichResults
|
||||||
|
|
@ -1805,7 +1777,6 @@ Search.prototype = {
|
||||||
// We only want to search the tokens that we are left with - not the
|
// We only want to search the tokens that we are left with - not the
|
||||||
// original search string.
|
// original search string.
|
||||||
searchString: this._searchTokens.join(" "),
|
searchString: this._searchTokens.join(" "),
|
||||||
userContextId: this._userContextId,
|
|
||||||
maxResults: Prefs.maxRichResults
|
maxResults: Prefs.maxRichResults
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
@ -1825,8 +1796,7 @@ Search.prototype = {
|
||||||
search_string: this._searchString,
|
search_string: this._searchString,
|
||||||
query_type: QUERYTYPE_FILTERED,
|
query_type: QUERYTYPE_FILTERED,
|
||||||
matchBehavior: this._matchBehavior,
|
matchBehavior: this._matchBehavior,
|
||||||
searchBehavior: this._behavior,
|
searchBehavior: this._behavior
|
||||||
userContextId: this._userContextId,
|
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
},
|
},
|
||||||
|
|
@ -2010,12 +1980,12 @@ UnifiedComplete.prototype = {
|
||||||
|
|
||||||
// mozIPlacesAutoComplete
|
// mozIPlacesAutoComplete
|
||||||
|
|
||||||
registerOpenPage(uri, userContextId) {
|
registerOpenPage: function PAC_registerOpenPage(uri) {
|
||||||
SwitchToTabStorage.add(uri, userContextId);
|
SwitchToTabStorage.add(uri);
|
||||||
},
|
},
|
||||||
|
|
||||||
unregisterOpenPage(uri, userContextId) {
|
unregisterOpenPage: function PAC_unregisterOpenPage(uri) {
|
||||||
SwitchToTabStorage.delete(uri, userContextId);
|
SwitchToTabStorage.delete(uri);
|
||||||
},
|
},
|
||||||
|
|
||||||
// nsIAutoCompleteSearch
|
// nsIAutoCompleteSearch
|
||||||
|
|
|
||||||
|
|
@ -116,10 +116,8 @@ interface mozIPlacesAutoComplete : nsISupports
|
||||||
*
|
*
|
||||||
* @param aURI
|
* @param aURI
|
||||||
* The URI to register as an open page.
|
* 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,
|
* Mark a page as no longer being open (either by closing the window or tab,
|
||||||
|
|
@ -131,8 +129,6 @@ interface mozIPlacesAutoComplete : nsISupports
|
||||||
*
|
*
|
||||||
* @param aURI
|
* @param aURI
|
||||||
* The URI to unregister as an open page.
|
* 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);
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -133,10 +133,8 @@
|
||||||
// nsPlacesAutoComplete.js.
|
// nsPlacesAutoComplete.js.
|
||||||
#define CREATE_MOZ_OPENPAGES_TEMP NS_LITERAL_CSTRING( \
|
#define CREATE_MOZ_OPENPAGES_TEMP NS_LITERAL_CSTRING( \
|
||||||
"CREATE TEMP TABLE moz_openpages_temp (" \
|
"CREATE TEMP TABLE moz_openpages_temp (" \
|
||||||
" url TEXT" \
|
" url TEXT PRIMARY KEY" \
|
||||||
", userContextId INTEGER" \
|
|
||||||
", open_count INTEGER" \
|
", open_count INTEGER" \
|
||||||
", PRIMARY KEY (url, userContextId)" \
|
|
||||||
")" \
|
")" \
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -192,8 +192,7 @@
|
||||||
"WHEN NEW.open_count = 0 " \
|
"WHEN NEW.open_count = 0 " \
|
||||||
"BEGIN " \
|
"BEGIN " \
|
||||||
"DELETE FROM moz_openpages_temp " \
|
"DELETE FROM moz_openpages_temp " \
|
||||||
"WHERE url = NEW.url " \
|
"WHERE url = NEW.url;" \
|
||||||
"AND userContextId = NEW.userContextId;" \
|
|
||||||
"END" \
|
"END" \
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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"]
|
let ac = Cc["@mozilla.org/autocomplete/search;1?name=unifiedcomplete"]
|
||||||
.getService(Ci.mozIPlacesAutoComplete);
|
.getService(Ci.mozIPlacesAutoComplete);
|
||||||
for (let i = 0; i < aCount; i++) {
|
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"]
|
let ac = Cc["@mozilla.org/autocomplete/search;1?name=unifiedcomplete"]
|
||||||
.getService(Ci.mozIPlacesAutoComplete);
|
.getService(Ci.mozIPlacesAutoComplete);
|
||||||
for (let i = 0; i < aCount; i++) {
|
for (let i = 0; i < aCount; i++) {
|
||||||
ac.unregisterOpenPage(aUri, aUserContextId);
|
ac.unregisterOpenPage(aUri);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,11 +11,9 @@ add_task(function* test_tab_matches() {
|
||||||
let uri2 = NetUtil.newURI("http://xyz.net/");
|
let uri2 = NetUtil.newURI("http://xyz.net/");
|
||||||
let uri3 = NetUtil.newURI("about:mozilla");
|
let uri3 = NetUtil.newURI("about:mozilla");
|
||||||
let uri4 = NetUtil.newURI("data:text/html,test");
|
let uri4 = NetUtil.newURI("data:text/html,test");
|
||||||
let uri5 = NetUtil.newURI("http://foobar.org");
|
|
||||||
yield PlacesTestUtils.addVisits([
|
yield PlacesTestUtils.addVisits([
|
||||||
{ uri: uri1, title: "ABC rocks" },
|
{ uri: uri1, title: "ABC rocks" },
|
||||||
{ uri: uri2, title: "xyz.net - we're better than ABC" },
|
{ uri: uri2, title: "xyz.net - we're better than ABC" }
|
||||||
{ uri: uri5, title: "foobar.org - much better than ABC, definitely better than XYZ" }
|
|
||||||
]);
|
]);
|
||||||
addOpenPages(uri1, 1);
|
addOpenPages(uri1, 1);
|
||||||
// Pages that cannot be registered in history.
|
// Pages that cannot be registered in history.
|
||||||
|
|
@ -37,8 +35,7 @@ add_task(function* test_tab_matches() {
|
||||||
searchParam: "enable-actions",
|
searchParam: "enable-actions",
|
||||||
matches: [ makeSearchMatch("abc", { heuristic: true }),
|
matches: [ makeSearchMatch("abc", { heuristic: true }),
|
||||||
makeSwitchToTabMatch("http://abc.com/", { title: "ABC rocks" }),
|
makeSwitchToTabMatch("http://abc.com/", { title: "ABC rocks" }),
|
||||||
{ uri: uri2, title: "xyz.net - we're better than ABC", 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" ] } ]
|
|
||||||
});
|
});
|
||||||
|
|
||||||
do_print("three results, both normal results are tab matches");
|
do_print("three results, both normal results are tab matches");
|
||||||
|
|
@ -48,39 +45,7 @@ add_task(function* test_tab_matches() {
|
||||||
searchParam: "enable-actions",
|
searchParam: "enable-actions",
|
||||||
matches: [ makeSearchMatch("abc", { heuristic: true }),
|
matches: [ makeSearchMatch("abc", { heuristic: true }),
|
||||||
makeSwitchToTabMatch("http://abc.com/", { title: "ABC rocks" }),
|
makeSwitchToTabMatch("http://abc.com/", { title: "ABC rocks" }),
|
||||||
makeSwitchToTabMatch("http://xyz.net/", { title: "xyz.net - we're better than ABC" }),
|
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" ] } ]
|
|
||||||
});
|
});
|
||||||
|
|
||||||
do_print("three results, both normal results are tab matches, one has multiple tabs");
|
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",
|
searchParam: "enable-actions",
|
||||||
matches: [ makeSearchMatch("abc", { heuristic: true }),
|
matches: [ makeSearchMatch("abc", { heuristic: true }),
|
||||||
makeSwitchToTabMatch("http://abc.com/", { title: "ABC rocks" }),
|
makeSwitchToTabMatch("http://abc.com/", { title: "ABC rocks" }),
|
||||||
makeSwitchToTabMatch("http://xyz.net/", { title: "xyz.net - we're better than ABC" }),
|
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("three results, no tab matches (disable-private-actions)");
|
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",
|
searchParam: "enable-actions disable-private-actions",
|
||||||
matches: [ makeSearchMatch("abc", { heuristic: true }),
|
matches: [ makeSearchMatch("abc", { heuristic: true }),
|
||||||
{ uri: uri1, title: "ABC rocks", style: [ "favicon" ] },
|
{ uri: uri1, title: "ABC rocks", style: [ "favicon" ] },
|
||||||
{ uri: uri2, title: "xyz.net - we're better than ABC", 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" ] } ]
|
|
||||||
});
|
});
|
||||||
|
|
||||||
do_print("two results (actions disabled)");
|
do_print("two results (actions disabled)");
|
||||||
|
|
@ -109,8 +72,7 @@ add_task(function* test_tab_matches() {
|
||||||
search: "abc",
|
search: "abc",
|
||||||
searchParam: "",
|
searchParam: "",
|
||||||
matches: [ { uri: uri1, title: "ABC rocks", style: [ "favicon" ] },
|
matches: [ { uri: uri1, title: "ABC rocks", style: [ "favicon" ] },
|
||||||
{ uri: uri2, title: "xyz.net - we're better than ABC", 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" ] } ]
|
|
||||||
});
|
});
|
||||||
|
|
||||||
do_print("three results, no tab matches");
|
do_print("three results, no tab matches");
|
||||||
|
|
@ -121,8 +83,7 @@ add_task(function* test_tab_matches() {
|
||||||
searchParam: "enable-actions",
|
searchParam: "enable-actions",
|
||||||
matches: [ makeSearchMatch("abc", { heuristic: true }),
|
matches: [ makeSearchMatch("abc", { heuristic: true }),
|
||||||
{ uri: uri1, title: "ABC rocks", style: [ "favicon" ] },
|
{ uri: uri1, title: "ABC rocks", style: [ "favicon" ] },
|
||||||
{ uri: uri2, title: "xyz.net - we're better than ABC", 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" ] } ]
|
|
||||||
});
|
});
|
||||||
|
|
||||||
do_print("tab match search with restriction character");
|
do_print("tab match search with restriction character");
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue