mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-09 03:15:11 +00:00
Bug 1675266 - [remote] Report correct browser name/version, and user agent string for "/json/version" httpd handler. r=remote-protocol-reviewers,maja_zf
Differential Revision: https://phabricator.services.mozilla.com/D96009
This commit is contained in:
parent
28bce1f7d9
commit
c113dc1c42
@ -6,6 +6,8 @@
|
||||
|
||||
var EXPORTED_SYMBOLS = ["JSONHandler"];
|
||||
|
||||
const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
|
||||
|
||||
const { HTTP_404, HTTP_505 } = ChromeUtils.import(
|
||||
"chrome://remote/content/server/HTTPD.jsm"
|
||||
);
|
||||
@ -27,10 +29,15 @@ class JSONHandler {
|
||||
|
||||
getVersion() {
|
||||
const mainProcessTarget = this.agent.targets.getMainProcessTarget();
|
||||
|
||||
const { userAgent } = Cc[
|
||||
"@mozilla.org/network/protocol;1?name=http"
|
||||
].getService(Ci.nsIHttpProtocolHandler);
|
||||
|
||||
return {
|
||||
Browser: "Firefox",
|
||||
Browser: `${Services.appinfo.name}/${Services.appinfo.version}`,
|
||||
"Protocol-Version": "1.0",
|
||||
"User-Agent": "Mozilla",
|
||||
"User-Agent": userAgent,
|
||||
"V8-Version": "1.0",
|
||||
"WebKit-Version": "1.0",
|
||||
webSocketDebuggerUrl: mainProcessTarget.toJSON().webSocketDebuggerUrl,
|
||||
|
@ -10,6 +10,7 @@ support-files =
|
||||
[browser_agent.js]
|
||||
[browser_cdp.js]
|
||||
skip-if = socketprocess_networking
|
||||
[browser_httpd.js]
|
||||
[browser_main_target.js]
|
||||
skip-if = socketprocess_networking
|
||||
[browser_session.js]
|
||||
|
42
remote/test/browser/browser_httpd.js
Normal file
42
remote/test/browser/browser_httpd.js
Normal file
@ -0,0 +1,42 @@
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||
|
||||
"use strict";
|
||||
|
||||
add_task(async function json_version() {
|
||||
await RemoteAgent.listen(`http://localhost:0`);
|
||||
|
||||
const { userAgent } = Cc[
|
||||
"@mozilla.org/network/protocol;1?name=http"
|
||||
].getService(Ci.nsIHttpProtocolHandler);
|
||||
|
||||
const json = await requestJSON("/version");
|
||||
is(
|
||||
json.Browser,
|
||||
`${Services.appinfo.name}/${Services.appinfo.version}`,
|
||||
"Browser name and version found"
|
||||
);
|
||||
is(json["Protocol-Version"], "1.0", "Protocol version found");
|
||||
is(json["User-Agent"], userAgent, "User agent found");
|
||||
is(json["V8-Version"], "1.0", "V8 version found");
|
||||
is(json["WebKit-Version"], "1.0", "Webkit version found");
|
||||
is(
|
||||
json.webSocketDebuggerUrl,
|
||||
RemoteAgent.targets.getMainProcessTarget().wsDebuggerURL,
|
||||
"Websocket URL for main process target found"
|
||||
);
|
||||
});
|
||||
|
||||
function requestJSON(path) {
|
||||
const url = `http://${RemoteAgent.debuggerAddress}`;
|
||||
|
||||
return new Promise(resolve => {
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open("GET", `${url}/json${path}`);
|
||||
xhr.responseType = "json";
|
||||
xhr.onloadend = () => {
|
||||
resolve(xhr.response);
|
||||
};
|
||||
xhr.send();
|
||||
});
|
||||
}
|
Loading…
Reference in New Issue
Block a user