aboutsummaryrefslogtreecommitdiffstats
path: root/components/devtools/actors/device.rs
diff options
context:
space:
mode:
authorOlivier Tilloy <olivier@tilloy.net>2024-05-08 06:12:18 +0200
committerGitHub <noreply@github.com>2024-05-08 04:12:18 +0000
commit6a2e4a61f7272b02bcc93b05521e50b359357892 (patch)
treecce293cd985e64a4423872dcc6181385a5ce88e1 /components/devtools/actors/device.rs
parentec3b3c006c6dbd870edfaa2ed48c393fecabfc3f (diff)
downloadservo-6a2e4a61f7272b02bcc93b05521e50b359357892.tar.gz
servo-6a2e4a61f7272b02bcc93b05521e50b359357892.zip
Devtools device description: improve how Servo is advertised in Firefox's about:debugging (fixes #27528) (#32227)
* Devtools device description: fix the case of the 'platformversion' property * Devtools device description: expose the properties Firefox expects for the display name and version of the server When connecting to Servo from Firefox (about:debugging), it will display "Servo (71.0)" instead of "{$name} (${version})". * Devtools device description: update versions to match those in the UA string * Devtools device description: expose a property (appbuildid) Firefox expects to compare versions for compatibility (_compareVersionCompatibility function) * Devtools device description: advertise a current platform version to remove the incompatibility warning in Firefox's about:debugging * Devtools preference actor: fix retrieving the actual preference by its key * Devtools preference actor: translate Firefox preference names onto the corresponding Servo preference names * Devtools device description: downgrade the platform version to prevent a confusing warning in about:debugging if the build ID is newer than that of Firefox (likely) * Devtools device description: add comments * Devtools device description: use CARGO_PKG_VERSION for the user-visible version number
Diffstat (limited to 'components/devtools/actors/device.rs')
-rw-r--r--components/devtools/actors/device.rs19
1 files changed, 17 insertions, 2 deletions
diff --git a/components/devtools/actors/device.rs b/components/devtools/actors/device.rs
index ed4c7993c9c..3fb5eb9a0a7 100644
--- a/components/devtools/actors/device.rs
+++ b/components/devtools/actors/device.rs
@@ -17,12 +17,24 @@ struct GetDescriptionReply {
value: SystemInfo,
}
+// This is only a minimal subset of the properties exposed/expected by Firefox
+// (see https://searchfox.org/mozilla-central/source/devtools/shared/system.js#45)
#[derive(Serialize)]
struct SystemInfo {
apptype: String,
- platformVersion: String,
+ // Display version
+ version: String,
+ // Build ID (timestamp with format YYYYMMDDhhmmss), used for compatibility checks
+ // (see https://searchfox.org/mozilla-central/source/devtools/client/shared/remote-debugging/version-checker.js#82)
+ appbuildid: String,
+ // Firefox major.minor version number, use for compatibility checks
+ platformversion: String,
+ // Display name
+ brandName: String,
}
+include!(concat!(env!("OUT_DIR"), "/build_id.rs"));
+
pub struct DeviceActor {
pub name: String,
}
@@ -45,7 +57,10 @@ impl Actor for DeviceActor {
from: self.name(),
value: SystemInfo {
apptype: "servo".to_string(),
- platformVersion: "71.0".to_string(),
+ version: env!("CARGO_PKG_VERSION").to_string(),
+ appbuildid: BUILD_ID.to_string(),
+ platformversion: "124.0".to_string(),
+ brandName: "Servo".to_string(),
},
};
let _ = stream.write_json_packet(&msg);