diff options
author | Olivier Tilloy <olivier@tilloy.net> | 2024-05-08 06:12:18 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-08 04:12:18 +0000 |
commit | 6a2e4a61f7272b02bcc93b05521e50b359357892 (patch) | |
tree | cce293cd985e64a4423872dcc6181385a5ce88e1 /components/devtools/actors/device.rs | |
parent | ec3b3c006c6dbd870edfaa2ed48c393fecabfc3f (diff) | |
download | servo-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.rs | 19 |
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); |