зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1177443 - Add 'system' purpose for searches coming from outside Firefox, r=MattN.
This commit is contained in:
Родитель
7a0077d01d
Коммит
3b370060f6
|
@ -271,7 +271,7 @@ function doSearch(searchTerm, cmdLine) {
|
|||
var ss = Components.classes["@mozilla.org/browser/search-service;1"]
|
||||
.getService(nsIBrowserSearchService);
|
||||
|
||||
var submission = ss.defaultEngine.getSubmission(searchTerm);
|
||||
var submission = ss.defaultEngine.getSubmission(searchTerm, null, "system");
|
||||
|
||||
// fill our nsISupportsArray with uri-as-wstring, null, null, postData
|
||||
var sa = Components.classes["@mozilla.org/supports-array;1"]
|
||||
|
@ -789,7 +789,7 @@ nsDefaultCommandLineHandler.prototype = {
|
|||
var term = params.get("q");
|
||||
var ss = Components.classes["@mozilla.org/browser/search-service;1"]
|
||||
.getService(nsIBrowserSearchService);
|
||||
var submission = ss.defaultEngine.getSubmission(term, null, "searchbar");
|
||||
var submission = ss.defaultEngine.getSubmission(term, null, "system");
|
||||
uri = submission.uri;
|
||||
}
|
||||
} catch (e) {
|
||||
|
|
|
@ -103,6 +103,11 @@ function test() {
|
|||
value: "yhs-005",
|
||||
purpose: "contextmenu",
|
||||
},
|
||||
{
|
||||
name: "hsimp",
|
||||
value: "yhs-007",
|
||||
purpose: "system",
|
||||
},
|
||||
],
|
||||
mozparams: {},
|
||||
},
|
||||
|
|
|
@ -25,5 +25,6 @@
|
|||
<MozParam name="hsimp" condition="purpose" purpose="homepage" value="yhs-003"/>
|
||||
<MozParam name="hsimp" condition="purpose" purpose="newtab" value="yhs-004"/>
|
||||
<MozParam name="hsimp" condition="purpose" purpose="contextmenu" value="yhs-005"/>
|
||||
<MozParam name="hsimp" condition="purpose" purpose="system" value="yhs-007"/>
|
||||
</Url>
|
||||
</SearchPlugin>
|
||||
|
|
|
@ -1323,6 +1323,10 @@ EngineURL.prototype = {
|
|||
// (purpose="") work consistently rather than having to define "null" and "" purposes.
|
||||
var purpose = aPurpose || "";
|
||||
|
||||
// If the 'system' purpose isn't defined in the plugin, fallback to 'searchbar'.
|
||||
if (purpose == "system" && !this.params.some(p => p.purpose == "system"))
|
||||
purpose = "searchbar";
|
||||
|
||||
// Create an application/x-www-form-urlencoded representation of our params
|
||||
// (name=value&name=value&name=value)
|
||||
var dataString = "";
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
|
||||
<ShortName>engine-system-purpose</ShortName>
|
||||
<Url type="text/html" method="GET" template="http://www.google.com/search">
|
||||
<Param name="q" value="{searchTerms}"/>
|
||||
<!-- Dynamic parameters -->
|
||||
<MozParam name="channel" condition="purpose" purpose="searchbar" value="sb"/>
|
||||
<MozParam name="channel" condition="purpose" purpose="system" value="sys"/>
|
||||
</Url>
|
||||
</SearchPlugin>
|
|
@ -54,5 +54,16 @@ add_task(function* test_purpose() {
|
|||
check_submission("&channel=sb", "", null, "searchbar");
|
||||
check_submission("&channel=sb", "", "text/html", "searchbar");
|
||||
|
||||
// verify that the 'system' purpose falls back to the 'searchbar' purpose.
|
||||
base = "http://www.google.com/search?q=foo";
|
||||
check_submission("&channel=sb", "foo", "text/html", "system");
|
||||
check_submission("&channel=sb", "foo", "text/html", "searchbar");
|
||||
// Add an engine that actually defines the 'system' purpose...
|
||||
[engine] = yield addTestEngines([
|
||||
{ name: "engine-system-purpose", xmlFileName: "engine-system-purpose.xml" }
|
||||
]);
|
||||
// ... and check that the system purpose is used correctly.
|
||||
check_submission("&channel=sys", "foo", "text/html", "system");
|
||||
|
||||
do_test_finished();
|
||||
});
|
||||
|
|
|
@ -16,6 +16,7 @@ support-files =
|
|||
data/engine-rel-searchform.xml
|
||||
data/engine-rel-searchform-post.xml
|
||||
data/engine-rel-searchform-purpose.xml
|
||||
data/engine-system-purpose.xml
|
||||
data/engineImages.xml
|
||||
data/ico-size-16x16-png.ico
|
||||
data/invalid-engine.xml
|
||||
|
|
Загрузка…
Ссылка в новой задаче