Bug 1364385 - Do not use canonicalized path to start Firefox.
Using the canonicalized path to start Firefox breaks the
browser on Windows because the "\\?\" prefix is not supported
yet. As result all components which rely on XCurProcD for
file handling are throwing JS errors, and do not initialize
correctly.
MozReview-Commit-ID: 5MWhDf1HCWf
--- a/testing/geckodriver/Cargo.lock
+++ b/testing/geckodriver/Cargo.lock
@@ -4,17 +4,17 @@ version = "0.16.1"
dependencies = [
"chrono 0.2.25 (registry+https://github.com/rust-lang/crates.io-index)",
"clap 2.24.2 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.10.10 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"mozprofile 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"mozrunner 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "mozversion 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "mozversion 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"regex 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)",
"slog 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
"slog-atomic 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
"slog-stdlog 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"slog-stream 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"uuid 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
"webdriver 0.25.2 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -302,17 +302,17 @@ source = "registry+https://github.com/ru
dependencies = [
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"mozprofile 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"winreg 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "mozversion"
-version = "0.1.1"
+version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"regex 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"rust-ini 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
"semver 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -715,17 +715,17 @@ dependencies = [
"checksum libc 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)" = "684f330624d8c3784fb9558ca46c4ce488073a8d22450415c5eb4f4cfb0d11b5"
"checksum log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ab83497bf8bf4ed2a74259c1c802351fcd67a65baa86394b6ba73c36f4838054"
"checksum matches 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "efd7622e3022e1a6eaa602c4cea8912254e5582c9c692e9167714182244801b1"
"checksum memchr 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1dbccc0e46f1ea47b9f17e6d67c5a96bd27030519c519c9c91327e31275a47b4"
"checksum mime 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "9d69889cdc6336ed56b174514ce876c4c3dc564cc23dd872e7bca589bb2a36c8"
"checksum miniz-sys 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "28eaee17666671fa872e567547e8428e83308ebe5808cdf6a0e28397dbe2c726"
"checksum mozprofile 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4981de229fba7d949465a2f564e2b46906c6e876516040416956a54021a84165"
"checksum mozrunner 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "91c54a746e7430326d2bc48a5b10ba7e9cd2294306773cb9f232835abe791f02"
-"checksum mozversion 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "76acea204db8c94a612821e0ddc5e4513e46af21fdbd8c15b8efe13b343062f0"
+"checksum mozversion 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9fb3a40135553611560d3eb4a49479beaf0c91c5a93f723338c5b0edddf08f26"
"checksum msdos_time 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "65ba9d75bcea84e07812618fedf284a64776c2f2ea0cad6bca7f69739695a958"
"checksum num 0.1.37 (registry+https://github.com/rust-lang/crates.io-index)" = "98b15ba84e910ea7a1973bccd3df7b31ae282bf9d8bd2897779950c9b8303d40"
"checksum num-integer 0.1.33 (registry+https://github.com/rust-lang/crates.io-index)" = "21e4df1098d1d797d27ef0c69c178c3fab64941559b290fcae198e0825c9c8b5"
"checksum num-iter 0.1.33 (registry+https://github.com/rust-lang/crates.io-index)" = "f7d1891bd7b936f12349b7d1403761c8a0b85a18b148e9da4429d5d102c1a41e"
"checksum num-traits 0.1.37 (registry+https://github.com/rust-lang/crates.io-index)" = "e1cbfa3781f3fe73dc05321bed52a06d2d491eaa764c52335cf4399f046ece99"
"checksum num_cpus 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a225d1e2717567599c24f88e49f00856c6e825a12125181ee42c4257e3688d39"
"checksum podio 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e5422a1ee1bc57cc47ae717b0137314258138f38fd5f3cea083f43a9725383a0"
"checksum rand 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)" = "022e0636ec2519ddae48154b028864bdce4eaf7d35226ab8e65c611be97b189d"
--- a/testing/geckodriver/src/capabilities.rs
+++ b/testing/geckodriver/src/capabilities.rs
@@ -47,17 +47,16 @@ impl<'a> FirefoxCapabilities<'a> {
fn set_binary(&mut self, capabilities: &BTreeMap<String, Json>) {
self.chosen_binary = capabilities
.get("moz:firefoxOptions")
.and_then(|x| x.find("binary"))
.and_then(|x| x.as_string())
.map(|x| PathBuf::from(x))
.or_else(|| self.fallback_binary.map(|x| x.clone()))
.or_else(|| firefox_default_path())
- .and_then(|x| x.canonicalize().ok())
}
fn version(&mut self) -> Option<String> {
if let Some(ref binary) = self.chosen_binary {
if let Some(value) = self.version_cache.get(binary) {
return Some((*value).clone());
}
debug!("Trying to read firefox version from ini files");
--- a/third_party/rust/mozversion/.cargo-checksum.json
+++ b/third_party/rust/mozversion/.cargo-checksum.json
@@ -1,1 +1,1 @@
-{"files":{".cargo-ok":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",".gitignore":"f9b1ca6ae27d1c18215265024629a8960c31379f206d9ed20f64e0b2dcf79805","Cargo.toml":"de3d35ee619ea8c23287c463c8a4f9ef999b851707f01d3cb1877c10ff973515","src/lib.rs":"4a28ed1eae70962084d4cb7d08e83be30515dd680c7bf21b9c6e8deba6023655"},"package":"76acea204db8c94a612821e0ddc5e4513e46af21fdbd8c15b8efe13b343062f0"}
\ No newline at end of file
+{"files":{".cargo-ok":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",".gitignore":"f9b1ca6ae27d1c18215265024629a8960c31379f206d9ed20f64e0b2dcf79805","Cargo.toml":"394d4d16c9ef5347a6572332b2ce927889da025df1885ae52419ae753f51ed75","src/lib.rs":"2e69f46b1e206ff07717cebcfc0ed5bd9cbe2fcc5a6f823fe1cadcef05ccb33c"},"package":"9fb3a40135553611560d3eb4a49479beaf0c91c5a93f723338c5b0edddf08f26"}
\ No newline at end of file
--- a/third_party/rust/mozversion/Cargo.toml
+++ b/third_party/rust/mozversion/Cargo.toml
@@ -1,11 +1,11 @@
[package]
name = "mozversion"
-version = "0.1.1"
+version = "0.1.2"
authors = ["James Graham <james@hoppipolla.co.uk>"]
description = "Utility for accessing Firefox version metadata"
keywords = ["mozilla", "firefox"]
repository = "https://github.com/jgraham/mozversion"
license = "MPL-2.0"
[dependencies]
--- a/third_party/rust/mozversion/src/lib.rs
+++ b/third_party/rust/mozversion/src/lib.rs
@@ -252,26 +252,33 @@ impl error::Error for Error {
}
}
#[cfg(target_os = "macos")]
mod platform {
use std::path::{Path, PathBuf};
pub fn ini_path(binary: &Path) -> Option<PathBuf> {
- binary.parent().and_then(|x| x.parent()).map(|x| x.join("Resources"))
+ binary.canonicalize().ok()
+ .as_ref()
+ .and_then(|dir| dir.parent())
+ .and_then(|dir| dir.parent())
+ .map(|dir| dir.join("Resources"))
}
}
#[cfg(not(target_os = "macos"))]
mod platform {
use std::path::{Path, PathBuf};
pub fn ini_path(binary: &Path) -> Option<PathBuf> {
- binary.parent().map(|dir| dir.to_path_buf())
+ binary.canonicalize().ok()
+ .as_ref()
+ .and_then(|dir| dir.parent())
+ .map(|dir| dir.to_path_buf())
}
}
#[cfg(test)]
mod test {
use super::{Version};
fn parse_version(input: &str) -> String {