aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Cargo.lock131
-rw-r--r--components/bluetooth/Cargo.toml1
-rw-r--r--components/bluetooth/lib.rs6
-rw-r--r--components/bluetooth_traits/Cargo.toml2
-rw-r--r--components/bluetooth_traits/blocklist.rs2
-rw-r--r--components/bluetooth_traits/lib.rs2
-rw-r--r--components/canvas/Cargo.toml2
-rw-r--r--components/canvas/canvas_paint_thread.rs6
-rw-r--r--components/canvas/lib.rs2
-rw-r--r--components/canvas/webgl_paint_thread.rs8
-rw-r--r--components/compositing/Cargo.toml3
-rw-r--r--components/compositing/compositor.rs6
-rw-r--r--components/compositing/lib.rs4
-rw-r--r--components/compositing/windowing.rs2
-rw-r--r--components/config/Cargo.toml (renamed from components/util/Cargo.toml)10
-rw-r--r--components/config/basedir.rs (renamed from components/util/basedir.rs)0
-rw-r--r--components/config/lib.rs (renamed from components/util/lib.rs)19
-rw-r--r--components/config/opts.rs (renamed from components/util/opts.rs)2
-rw-r--r--components/config/prefs.rs (renamed from components/util/prefs.rs)0
-rw-r--r--components/config/resource_files.rs (renamed from components/util/resource_files.rs)0
-rw-r--r--components/constellation/Cargo.toml3
-rw-r--r--components/constellation/constellation.rs12
-rw-r--r--components/constellation/lib.rs4
-rw-r--r--components/constellation/pipeline.rs4
-rw-r--r--components/constellation/sandboxing.rs2
-rw-r--r--components/debugger/Cargo.toml1
-rw-r--r--components/debugger/lib.rs11
-rw-r--r--components/devtools/Cargo.toml1
-rw-r--r--components/devtools/actors/timeline.rs5
-rw-r--r--components/devtools/lib.rs15
-rw-r--r--components/geometry/Cargo.toml19
-rw-r--r--components/geometry/lib.rs (renamed from components/util/geometry.rs)4
-rw-r--r--components/gfx/Cargo.toml2
-rw-r--r--components/gfx/display_list/mod.rs6
-rw-r--r--components/gfx/font_cache_thread.rs6
-rw-r--r--components/gfx/lib.rs2
-rw-r--r--components/layout/Cargo.toml2
-rw-r--r--components/layout/block.rs3
-rw-r--r--components/layout/construct.rs2
-rw-r--r--components/layout/context.rs2
-rw-r--r--components/layout/display_list_builder.rs2
-rw-r--r--components/layout/lib.rs2
-rw-r--r--components/layout/parallel.rs2
-rw-r--r--components/layout/sequential.rs2
-rw-r--r--components/layout/traversal.rs2
-rw-r--r--components/layout_thread/Cargo.toml3
-rw-r--r--components/layout_thread/lib.rs20
-rw-r--r--components/net/Cargo.toml2
-rw-r--r--components/net/chrome_loader.rs2
-rw-r--r--components/net/connector.rs2
-rw-r--r--components/net/content_blocker.rs2
-rw-r--r--components/net/filemanager_thread.rs20
-rw-r--r--components/net/hsts.rs2
-rw-r--r--components/net/http_loader.rs6
-rw-r--r--components/net/image_cache_thread.rs8
-rw-r--r--components/net/lib.rs2
-rw-r--r--components/net/resource_thread.rs10
-rw-r--r--components/net/storage_thread.rs6
-rw-r--r--components/net/websocket_loader.rs5
-rw-r--r--components/net_traits/Cargo.toml2
-rw-r--r--components/net_traits/lib.rs2
-rw-r--r--components/net_traits/pub_domains.rs2
-rw-r--r--components/profile/Cargo.toml2
-rw-r--r--components/profile/heartbeats.rs2
-rw-r--r--components/profile/lib.rs2
-rw-r--r--components/profile/mem.rs9
-rw-r--r--components/profile/time.rs23
-rw-r--r--components/profile_traits/Cargo.toml2
-rw-r--r--components/profile_traits/lib.rs2
-rw-r--r--components/profile_traits/time.rs2
-rw-r--r--components/remutex/Cargo.toml14
-rw-r--r--components/remutex/lib.rs (renamed from components/util/remutex.rs)6
-rw-r--r--components/script/Cargo.toml3
-rw-r--r--components/script/dom/bindings/codegen/CodegenRust.py2
-rw-r--r--components/script/dom/bindings/conversions.rs2
-rw-r--r--components/script/dom/bindings/guard.rs2
-rw-r--r--components/script/dom/characterdata.rs2
-rw-r--r--components/script/dom/create.rs2
-rw-r--r--components/script/dom/dedicatedworkerglobalscope.rs6
-rw-r--r--components/script/dom/document.rs2
-rw-r--r--components/script/dom/filereader.rs7
-rw-r--r--components/script/dom/htmlanchorelement.rs2
-rw-r--r--components/script/dom/htmliframeelement.rs4
-rw-r--r--components/script/dom/htmlmetaelement.rs3
-rw-r--r--components/script/dom/mouseevent.rs2
-rw-r--r--components/script/dom/navigatorinfo.rs2
-rw-r--r--components/script/dom/serviceworkerglobalscope.rs11
-rw-r--r--components/script/dom/servoparser/mod.rs2
-rw-r--r--components/script/dom/testbinding.rs2
-rw-r--r--components/script/dom/userscripts.rs4
-rw-r--r--components/script/dom/window.rs10
-rw-r--r--components/script/dom/xmlhttprequest.rs2
-rw-r--r--components/script/lib.rs3
-rw-r--r--components/script/script_runtime.rs4
-rw-r--r--components/script/script_thread.rs9
-rw-r--r--components/script/serviceworker_manager.rs8
-rw-r--r--components/script/timers.rs2
-rw-r--r--components/servo/Cargo.toml2
-rw-r--r--components/servo/lib.rs11
-rw-r--r--components/style/Cargo.toml2
-rw-r--r--components/style/lib.rs2
-rw-r--r--components/style/matching.rs2
-rw-r--r--components/style/parallel.rs2
-rw-r--r--components/style/properties/properties.mako.rs5
-rw-r--r--components/style/stylesheets.rs3
-rw-r--r--components/style/traversal.rs2
-rw-r--r--components/url/Cargo.toml2
-rw-r--r--components/util/thread.rs11
-rw-r--r--components/webdriver_server/Cargo.toml2
-rw-r--r--components/webdriver_server/lib.rs9
-rw-r--r--ports/cef/Cargo.toml3
-rw-r--r--ports/cef/browser.rs8
-rw-r--r--ports/cef/core.rs2
-rw-r--r--ports/cef/lib.rs3
-rw-r--r--ports/cef/window.rs2
-rw-r--r--ports/glutin/Cargo.toml3
-rw-r--r--ports/glutin/lib.rs5
-rw-r--r--ports/glutin/window.rs8
-rw-r--r--ports/servo/Cargo.toml3
-rw-r--r--ports/servo/main.rs8
-rw-r--r--tests/unit/net/Cargo.toml2
-rw-r--r--tests/unit/net/fetch.rs2
-rw-r--r--tests/unit/net/lib.rs2
-rw-r--r--tests/unit/servo_config/Cargo.toml (renamed from tests/unit/util/Cargo.toml)6
-rw-r--r--tests/unit/servo_config/lib.rs (renamed from tests/unit/util/lib.rs)4
-rw-r--r--tests/unit/servo_config/opts.rs (renamed from tests/unit/util/opts.rs)2
-rw-r--r--tests/unit/servo_config/prefs.rs (renamed from tests/unit/util/prefs.rs)4
-rw-r--r--tests/unit/servo_remutex/Cargo.toml14
-rw-r--r--tests/unit/servo_remutex/lib.rs (renamed from tests/unit/util/remutex.rs)6
-rw-r--r--tests/unit/style/Cargo.toml2
-rw-r--r--tests/unit/style/lib.rs2
-rw-r--r--tests/unit/style/viewport.rs7
-rw-r--r--tests/unit/util/thread.rs13
133 files changed, 396 insertions, 352 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 21aa7ff9519..ae604a4a1d2 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -14,9 +14,9 @@ dependencies = [
"regex 0.1.76 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
"script_traits 0.0.1",
+ "servo_config 0.0.1",
"servo_url 0.0.1",
"url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "util 0.0.1",
"uuid 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"webdriver 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -185,7 +185,6 @@ dependencies = [
"ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
"tinyfiledialogs 0.1.0 (git+https://github.com/jdm/tinyfiledialogs)",
- "util 0.0.1",
"uuid 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -197,7 +196,7 @@ dependencies = [
"regex 0.1.76 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.8.18 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_derive 0.8.18 (registry+https://github.com/rust-lang/crates.io-index)",
- "util 0.0.1",
+ "servo_config 0.0.1",
]
[[package]]
@@ -265,7 +264,7 @@ dependencies = [
"num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"offscreen_gl_context 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"plugins 0.0.1",
- "util 0.0.1",
+ "servo_config 0.0.1",
"webrender_traits 0.11.0 (git+https://github.com/servo/webrender)",
]
@@ -398,10 +397,11 @@ dependencies = [
"script_traits 0.0.1",
"serde 0.8.18 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_derive 0.8.18 (registry+https://github.com/rust-lang/crates.io-index)",
+ "servo_config 0.0.1",
+ "servo_geometry 0.0.1",
"servo_url 0.0.1",
"style_traits 0.0.1",
"time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
- "util 0.0.1",
"webrender 0.11.0 (git+https://github.com/servo/webrender)",
"webrender_traits 0.11.0 (git+https://github.com/servo/webrender)",
]
@@ -433,9 +433,10 @@ dependencies = [
"script_traits 0.0.1",
"serde 0.8.18 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_derive 0.8.18 (registry+https://github.com/rust-lang/crates.io-index)",
+ "servo_config 0.0.1",
+ "servo_remutex 0.0.1",
"servo_url 0.0.1",
"style_traits 0.0.1",
- "util 0.0.1",
"webrender_traits 0.11.0 (git+https://github.com/servo/webrender)",
]
@@ -544,7 +545,6 @@ name = "debugger"
version = "0.0.1"
dependencies = [
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "util 0.0.1",
"ws 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -582,7 +582,6 @@ dependencies = [
"serde_derive 0.8.18 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_json 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
"time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
- "util 0.0.1",
]
[[package]]
@@ -657,9 +656,10 @@ dependencies = [
"objc 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"plugins 0.0.1",
"script_traits 0.0.1",
+ "servo_config 0.0.1",
+ "servo_geometry 0.0.1",
"servo_url 0.0.1",
"style_traits 0.0.1",
- "util 0.0.1",
"x11 2.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -941,6 +941,7 @@ dependencies = [
"serde_derive 0.8.18 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-fontconfig 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"servo_atoms 0.0.1",
+ "servo_geometry 0.0.1",
"servo_url 0.0.1",
"simd 0.1.1 (git+https://github.com/huonw/simd)",
"smallvec 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -948,7 +949,6 @@ dependencies = [
"style_traits 0.0.1",
"time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"unicode-script 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "util 0.0.1",
"webrender_traits 0.11.0 (git+https://github.com/servo/webrender)",
"xi-unicode 0.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -1026,10 +1026,11 @@ dependencies = [
"script_traits 0.0.1",
"servo-egl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-glutin 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "servo_config 0.0.1",
+ "servo_geometry 0.0.1",
"servo_url 0.0.1",
"style_traits 0.0.1",
"user32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "util 0.0.1",
"winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
"x11 2.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -1322,13 +1323,13 @@ dependencies = [
"serde_derive 0.8.18 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_json 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
"servo_atoms 0.0.1",
+ "servo_config 0.0.1",
"servo_url 0.0.1",
"smallvec 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
"style 0.0.1",
"style_traits 0.0.1",
"unicode-bidi 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
"unicode-script 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "util 0.0.1",
"webrender_traits 0.11.0 (git+https://github.com/servo/webrender)",
]
@@ -1367,9 +1368,10 @@ dependencies = [
"selectors 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_derive 0.8.18 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_json 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "servo_config 0.0.1",
+ "servo_geometry 0.0.1",
"servo_url 0.0.1",
"style 0.0.1",
- "util 0.0.1",
"webrender_traits 0.11.0 (git+https://github.com/servo/webrender)",
]
@@ -1489,11 +1491,11 @@ dependencies = [
"script 0.0.1",
"script_layout_interface 0.0.1",
"script_traits 0.0.1",
+ "servo_config 0.0.1",
"servo_url 0.0.1",
"sig 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"style 0.0.1",
"url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "util 0.0.1",
"webdriver_server 0.0.1",
"webrender 0.11.0 (git+https://github.com/servo/webrender)",
"webrender_traits 0.11.0 (git+https://github.com/servo/webrender)",
@@ -1676,13 +1678,13 @@ dependencies = [
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.8.18 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_derive 0.8.18 (registry+https://github.com/rust-lang/crates.io-index)",
+ "servo_config 0.0.1",
"servo_url 0.0.1",
"threadpool 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
"time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"tinyfiledialogs 0.1.0 (git+https://github.com/jdm/tinyfiledialogs)",
"unicase 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "util 0.0.1",
"uuid 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"webrender_traits 0.11.0 (git+https://github.com/servo/webrender)",
"websocket 0.17.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1716,11 +1718,11 @@ dependencies = [
"net_traits 0.0.1",
"plugins 0.0.1",
"profile_traits 0.0.1",
+ "servo_config 0.0.1",
"servo_url 0.0.1",
"time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"unicase 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "util 0.0.1",
]
[[package]]
@@ -1741,9 +1743,9 @@ dependencies = [
"num-traits 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.8.18 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_derive 0.8.18 (registry+https://github.com/rust-lang/crates.io-index)",
+ "servo_config 0.0.1",
"servo_url 0.0.1",
"url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "util 0.0.1",
"uuid 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"webrender_traits 0.11.0 (git+https://github.com/servo/webrender)",
"websocket 0.17.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2088,9 +2090,9 @@ dependencies = [
"serde 0.8.18 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_derive 0.8.18 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_json 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "servo_config 0.0.1",
"task_info 0.0.1",
"time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
- "util 0.0.1",
]
[[package]]
@@ -2113,9 +2115,9 @@ dependencies = [
"plugins 0.0.1",
"serde 0.8.18 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_derive 0.8.18 (registry+https://github.com/rust-lang/crates.io-index)",
+ "servo_config 0.0.1",
"signpost 0.1.0 (git+https://github.com/pcwalton/signpost.git)",
"time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
- "util 0.0.1",
]
[[package]]
@@ -2292,6 +2294,8 @@ dependencies = [
"selectors 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.8.18 (registry+https://github.com/rust-lang/crates.io-index)",
"servo_atoms 0.0.1",
+ "servo_config 0.0.1",
+ "servo_geometry 0.0.1",
"servo_url 0.0.1",
"smallvec 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
"style 0.0.1",
@@ -2299,7 +2303,6 @@ dependencies = [
"time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"tinyfiledialogs 0.1.0 (git+https://github.com/jdm/tinyfiledialogs)",
"url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "util 0.0.1",
"uuid 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"webrender_traits 0.11.0 (git+https://github.com/servo/webrender)",
"websocket 0.17.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2464,9 +2467,10 @@ dependencies = [
"plugin_compiletest 0.0.1",
"profile_tests 0.0.1",
"script_tests 0.0.1",
+ "servo_config_tests 0.0.1",
+ "servo_remutex_tests 0.0.1",
"sig 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"style_tests 0.0.1",
- "util_tests 0.0.1",
]
[[package]]
@@ -2563,6 +2567,58 @@ dependencies = [
]
[[package]]
+name = "servo_config"
+version = "0.0.1"
+dependencies = [
+ "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "env_logger 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "getopts 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
+ "lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num_cpus 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "plugins 0.0.1",
+ "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 0.8.18 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_derive 0.8.18 (registry+https://github.com/rust-lang/crates.io-index)",
+ "servo_geometry 0.0.1",
+ "servo_url 0.0.1",
+ "url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "xdg 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "servo_config_tests"
+version = "0.0.1"
+dependencies = [
+ "servo_config 0.0.1",
+]
+
+[[package]]
+name = "servo_geometry"
+version = "0.0.1"
+dependencies = [
+ "app_units 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "heapsize 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "servo_remutex"
+version = "0.0.1"
+dependencies = [
+ "lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "servo_remutex_tests"
+version = "0.0.1"
+dependencies = [
+ "servo_remutex 0.0.1",
+]
+
+[[package]]
name = "servo_url"
version = "0.0.1"
dependencies = [
@@ -2695,12 +2751,12 @@ dependencies = [
"serde 0.8.18 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_derive 0.8.18 (registry+https://github.com/rust-lang/crates.io-index)",
"servo_atoms 0.0.1",
+ "servo_config 0.0.1",
"servo_url 0.0.1",
"smallvec 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
"style_traits 0.0.1",
"time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
"unicode-segmentation 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "util 0.0.1",
"walkdir 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -2718,10 +2774,10 @@ dependencies = [
"rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
"selectors 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)",
"servo_atoms 0.0.1",
+ "servo_config 0.0.1",
"servo_url 0.0.1",
"style 0.0.1",
"style_traits 0.0.1",
- "util 0.0.1",
]
[[package]]
@@ -3019,35 +3075,6 @@ version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
-name = "util"
-version = "0.0.1"
-dependencies = [
- "app_units 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "env_logger 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "euclid 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "getopts 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
- "heapsize 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
- "lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "num_cpus 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "plugins 0.0.1",
- "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 0.8.18 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_derive 0.8.18 (registry+https://github.com/rust-lang/crates.io-index)",
- "servo_url 0.0.1",
- "url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "xdg 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "util_tests"
-version = "0.0.1"
-dependencies = [
- "util 0.0.1",
-]
-
-[[package]]
name = "uuid"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
diff --git a/components/bluetooth/Cargo.toml b/components/bluetooth/Cargo.toml
index 7ee5f430751..b94363904e1 100644
--- a/components/bluetooth/Cargo.toml
+++ b/components/bluetooth/Cargo.toml
@@ -15,7 +15,6 @@ bluetooth_traits = {path = "../bluetooth_traits"}
device = {git = "https://github.com/servo/devices", features = ["bluetooth-test"]}
ipc-channel = "0.5"
rand = "0.3"
-util = {path = "../util"}
uuid = {version = "0.3.1", features = ["v4"]}
[target.'cfg(target_os = "linux")'.dependencies]
diff --git a/components/bluetooth/lib.rs b/components/bluetooth/lib.rs
index 0207c9e6f74..6d0eca81158 100644
--- a/components/bluetooth/lib.rs
+++ b/components/bluetooth/lib.rs
@@ -10,7 +10,6 @@ extern crate ipc_channel;
extern crate rand;
#[cfg(target_os = "linux")]
extern crate tinyfiledialogs;
-extern crate util;
extern crate uuid;
pub mod test;
@@ -29,7 +28,6 @@ use std::collections::{HashMap, HashSet};
use std::string::String;
use std::thread;
use std::time::Duration;
-use util::thread::spawn_named;
// A transaction not completed within 30 seconds shall time out. Such a transaction shall be considered to have failed.
// https://www.bluetooth.org/DocMan/handlers/DownloadDoc.ashx?doc_id=286439 (Vol. 3, page 480)
@@ -88,9 +86,9 @@ impl BluetoothThreadFactory for IpcSender<BluetoothRequest> {
fn new() -> IpcSender<BluetoothRequest> {
let (sender, receiver) = ipc::channel().unwrap();
let adapter = BluetoothAdapter::init().ok();
- spawn_named("BluetoothThread".to_owned(), move || {
+ thread::Builder::new().name("BluetoothThread".to_owned()).spawn(move || {
BluetoothManager::new(receiver, adapter).start();
- });
+ }).expect("Thread spawning failed");
sender
}
}
diff --git a/components/bluetooth_traits/Cargo.toml b/components/bluetooth_traits/Cargo.toml
index 5ac8057c2b2..c2c5a632b2d 100644
--- a/components/bluetooth_traits/Cargo.toml
+++ b/components/bluetooth_traits/Cargo.toml
@@ -14,4 +14,4 @@ ipc-channel = "0.5"
regex = "0.1.43"
serde = "0.8"
serde_derive = "0.8"
-util = {path = "../util"}
+servo_config = {path = "../config"}
diff --git a/components/bluetooth_traits/blocklist.rs b/components/bluetooth_traits/blocklist.rs
index f859def1379..26df3413c10 100644
--- a/components/bluetooth_traits/blocklist.rs
+++ b/components/bluetooth_traits/blocklist.rs
@@ -3,11 +3,11 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use regex::Regex;
+use servo_config::resource_files::read_resource_file;
use std::cell::RefCell;
use std::collections::HashMap;
use std::io::BufRead;
use std::string::String;
-use util::resource_files::read_resource_file;
const BLOCKLIST_FILE: &'static str = "gatt_blocklist.txt";
const BLOCKLIST_FILE_NOT_FOUND: &'static str = "Could not find gatt_blocklist.txt file";
diff --git a/components/bluetooth_traits/lib.rs b/components/bluetooth_traits/lib.rs
index 761173eb32f..68620217d4f 100644
--- a/components/bluetooth_traits/lib.rs
+++ b/components/bluetooth_traits/lib.rs
@@ -8,7 +8,7 @@ extern crate ipc_channel;
extern crate regex;
#[macro_use]
extern crate serde_derive;
-extern crate util;
+extern crate servo_config;
pub mod blocklist;
pub mod scanfilter;
diff --git a/components/canvas/Cargo.toml b/components/canvas/Cargo.toml
index 41debc4a83a..682e19415b1 100644
--- a/components/canvas/Cargo.toml
+++ b/components/canvas/Cargo.toml
@@ -19,7 +19,7 @@ log = "0.3.5"
num-traits = "0.1.32"
offscreen_gl_context = "0.5.0"
plugins = {path = "../plugins"}
-util = {path = "../util"}
+servo_config = {path = "../config"}
[dependencies.webrender_traits]
git = "https://github.com/servo/webrender"
diff --git a/components/canvas/canvas_paint_thread.rs b/components/canvas/canvas_paint_thread.rs
index 26863482a99..cfc1a11388b 100644
--- a/components/canvas/canvas_paint_thread.rs
+++ b/components/canvas/canvas_paint_thread.rs
@@ -15,7 +15,7 @@ use ipc_channel::ipc::{self, IpcSender};
use num_traits::ToPrimitive;
use std::borrow::ToOwned;
use std::mem;
-use util::thread::spawn_named;
+use std::thread;
use webrender_traits;
impl<'a> CanvasPaintThread<'a> {
@@ -121,7 +121,7 @@ impl<'a> CanvasPaintThread<'a> {
antialias: bool)
-> IpcSender<CanvasMsg> {
let (sender, receiver) = ipc::channel::<CanvasMsg>().unwrap();
- spawn_named("CanvasThread".to_owned(), move || {
+ thread::Builder::new().name("CanvasThread".to_owned()).spawn(move || {
let mut painter = CanvasPaintThread::new(size, webrender_api_sender, antialias);
loop {
let msg = receiver.recv();
@@ -211,7 +211,7 @@ impl<'a> CanvasPaintThread<'a> {
CanvasMsg::WebGL(_) => panic!("Wrong message sent to Canvas2D thread"),
}
}
- });
+ }).expect("Thread spawning failed");
sender
}
diff --git a/components/canvas/lib.rs b/components/canvas/lib.rs
index 752207aa127..25bbed7f4dd 100644
--- a/components/canvas/lib.rs
+++ b/components/canvas/lib.rs
@@ -17,7 +17,7 @@ extern crate ipc_channel;
extern crate log;
extern crate num_traits;
extern crate offscreen_gl_context;
-extern crate util;
+extern crate servo_config;
extern crate webrender_traits;
pub mod canvas_paint_thread;
diff --git a/components/canvas/webgl_paint_thread.rs b/components/canvas/webgl_paint_thread.rs
index 8a080aa639a..09287d7eb67 100644
--- a/components/canvas/webgl_paint_thread.rs
+++ b/components/canvas/webgl_paint_thread.rs
@@ -9,10 +9,10 @@ use gleam::gl;
use ipc_channel::ipc::{self, IpcSender};
use offscreen_gl_context::{ColorAttachmentType, GLContext, GLLimits};
use offscreen_gl_context::{GLContextAttributes, NativeGLContext, OSMesaContext};
+use servo_config::opts;
use std::borrow::ToOwned;
use std::sync::mpsc::channel;
-use util::opts;
-use util::thread::spawn_named;
+use std::thread;
use webrender_traits;
enum GLContextWrapper {
@@ -151,7 +151,7 @@ impl WebGLPaintThread {
-> Result<(IpcSender<CanvasMsg>, GLLimits), String> {
let (sender, receiver) = ipc::channel::<CanvasMsg>().unwrap();
let (result_chan, result_port) = channel();
- spawn_named("WebGLThread".to_owned(), move || {
+ thread::Builder::new().name("WebGLThread".to_owned()).spawn(move || {
let mut painter = match WebGLPaintThread::new(size, attrs, webrender_api_sender) {
Ok((thread, limits)) => {
result_chan.send(Ok(limits)).unwrap();
@@ -191,7 +191,7 @@ impl WebGLPaintThread {
CanvasMsg::Canvas2d(_) => panic!("Wrong message sent to WebGLThread"),
}
}
- });
+ }).expect("Thread spawning failed");
result_port.recv().unwrap().map(|limits| (sender, limits))
}
diff --git a/components/compositing/Cargo.toml b/components/compositing/Cargo.toml
index 1ba3aa39eb8..37309714e50 100644
--- a/components/compositing/Cargo.toml
+++ b/components/compositing/Cargo.toml
@@ -23,10 +23,11 @@ profile_traits = {path = "../profile_traits"}
script_traits = {path = "../script_traits"}
serde = "0.8"
serde_derive = "0.8"
+servo_config = {path = "../config", features = ["servo"]}
+servo_geometry = {path = "../geometry", features = ["servo"]}
servo_url = {path = "../url", features = ["servo"]}
style_traits = {path = "../style_traits"}
time = "0.1.17"
-util = {path = "../util"}
[dependencies.webrender]
git = "https://github.com/servo/webrender"
diff --git a/components/compositing/compositor.rs b/components/compositing/compositor.rs
index 4d8cffb7518..f3627937ba9 100644
--- a/components/compositing/compositor.rs
+++ b/components/compositing/compositor.rs
@@ -26,6 +26,9 @@ use script_traits::{ConstellationMsg, LayoutControlMsg, LoadData, MouseButton};
use script_traits::{MouseEventType, StackingContextScrollState};
use script_traits::{TouchpadPressurePhase, TouchEventType, TouchId, WindowSizeData, WindowSizeType};
use script_traits::CompositorEvent::{self, MouseMoveEvent, MouseButtonEvent, TouchEvent, TouchpadPressureEvent};
+use servo_config::opts;
+use servo_config::prefs::PREFS;
+use servo_geometry::ScreenPx;
use servo_url::ServoUrl;
use std::collections::HashMap;
use std::fs::File;
@@ -36,9 +39,6 @@ use style_traits::{PagePx, ViewportPx};
use style_traits::viewport::ViewportConstraints;
use time::{precise_time_ns, precise_time_s};
use touch::{TouchHandler, TouchAction};
-use util::geometry::ScreenPx;
-use util::opts;
-use util::prefs::PREFS;
use webrender;
use webrender_traits::{self, ScrollEventPhase, ServoScrollRootId};
use windowing::{self, MouseWindowEvent, WindowEvent, WindowMethods, WindowNavigateMsg};
diff --git a/components/compositing/lib.rs b/components/compositing/lib.rs
index c5b98a6e679..781f4c4f868 100644
--- a/components/compositing/lib.rs
+++ b/components/compositing/lib.rs
@@ -23,11 +23,11 @@ extern crate profile_traits;
extern crate script_traits;
#[macro_use]
extern crate serde_derive;
+extern crate servo_config;
+extern crate servo_geometry;
extern crate servo_url;
extern crate style_traits;
extern crate time;
-#[macro_use]
-extern crate util;
extern crate webrender;
extern crate webrender_traits;
diff --git a/components/compositing/windowing.rs b/components/compositing/windowing.rs
index 33eed7630cc..a6933ce92fd 100644
--- a/components/compositing/windowing.rs
+++ b/components/compositing/windowing.rs
@@ -13,10 +13,10 @@ use gfx_traits::DevicePixel;
use msg::constellation_msg::{Key, KeyModifiers, KeyState};
use net_traits::net_error_list::NetError;
use script_traits::{MouseButton, TouchEventType, TouchId, TouchpadPressurePhase};
+use servo_geometry::ScreenPx;
use servo_url::ServoUrl;
use std::fmt::{Debug, Error, Formatter};
use style_traits::cursor::Cursor;
-use util::geometry::ScreenPx;
#[derive(Clone)]
pub enum MouseWindowEvent {
diff --git a/components/util/Cargo.toml b/components/config/Cargo.toml
index 2f9ee4486cf..1ef60b64382 100644
--- a/components/util/Cargo.toml
+++ b/components/config/Cargo.toml
@@ -1,31 +1,29 @@
[package]
-name = "util"
+name = "servo_config"
version = "0.0.1"
authors = ["The Servo Project Developers"]
license = "MPL-2.0"
publish = false
[lib]
-name = "util"
+name = "servo_config"
path = "lib.rs"
[features]
# servo as opposed to geckolib
-servo = ["serde", "serde_derive", "app_units/plugins",
- "euclid/unstable", "url/heap_size", "url/serde", "plugins"]
+servo = ["serde", "serde_derive", "url/heap_size", "url/serde", "plugins"]
[dependencies]
-app_units = "0.3"
bitflags = "0.7"
euclid = "0.10.1"
getopts = "0.2.11"
-heapsize = "0.3.0"
lazy_static = "0.2"
log = "0.3.5"
num_cpus = "1.1.0"
rustc-serialize = "0.3"
serde = {version = "0.8", optional = true}
serde_derive = {version = "0.8", optional = true}
+servo_geometry = {path = "../geometry"}
servo_url = {path = "../url"}
plugins = {path = "../plugins", optional = true}
url = "1.2"
diff --git a/components/util/basedir.rs b/components/config/basedir.rs
index 5c7896a388b..5c7896a388b 100644
--- a/components/util/basedir.rs
+++ b/components/config/basedir.rs
diff --git a/components/util/lib.rs b/components/config/lib.rs
index 3c72d90d257..e4df206f47a 100644
--- a/components/util/lib.rs
+++ b/components/config/lib.rs
@@ -2,37 +2,32 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-#![cfg_attr(feature = "servo", feature(nonzero))]
#![cfg_attr(feature = "servo", feature(plugin))]
#![cfg_attr(feature = "servo", feature(proc_macro))]
#![cfg_attr(feature = "servo", plugin(plugins))]
#![deny(unsafe_code)]
-extern crate app_units;
#[allow(unused_extern_crates)] #[macro_use] extern crate bitflags;
extern crate core;
-#[macro_use] extern crate euclid;
+extern crate euclid;
extern crate getopts;
-#[macro_use] extern crate heapsize;
#[allow(unused_extern_crates)] #[macro_use] extern crate lazy_static;
#[macro_use] extern crate log;
extern crate num_cpus;
extern crate rustc_serialize;
#[cfg(feature = "servo")] extern crate serde;
#[cfg(feature = "servo")] #[macro_use] extern crate serde_derive;
+extern crate servo_geometry;
extern crate servo_url;
extern crate url;
#[cfg(all(unix, not(target_os = "macos"), not(target_os = "ios"), not(target_os = "android")))]
extern crate xdg;
pub mod basedir;
-pub mod geometry;
#[allow(unsafe_code)] pub mod opts;
pub mod prefs;
-#[cfg(feature = "servo")] pub mod remutex;
pub mod resource_files;
-pub mod thread;
pub fn servo_version() -> String {
let cargo_version = env!("CARGO_PKG_VERSION");
@@ -42,13 +37,3 @@ pub fn servo_version() -> String {
None => format!("Servo {}", cargo_version),
}
}
-
-pub fn clamp<T: Ord>(lo: T, mid: T, hi: T) -> T {
- if mid < lo {
- lo
- } else if mid > hi {
- hi
- } else {
- mid
- }
-}
diff --git a/components/util/opts.rs b/components/config/opts.rs
index 4f1db5d8c50..a59cd56f0d7 100644
--- a/components/util/opts.rs
+++ b/components/config/opts.rs
@@ -6,11 +6,11 @@
//! from command line arguments.
use euclid::size::TypedSize2D;
-use geometry::ScreenPx;
use getopts::Options;
use num_cpus;
use prefs::{self, PrefValue, PREFS};
use resource_files::set_resources_path;
+use servo_geometry::ScreenPx;
use servo_url::ServoUrl;
use std::borrow::Cow;
use std::cmp;
diff --git a/components/util/prefs.rs b/components/config/prefs.rs
index c0ad11bfe0b..c0ad11bfe0b 100644
--- a/components/util/prefs.rs
+++ b/components/config/prefs.rs
diff --git a/components/util/resource_files.rs b/components/config/resource_files.rs
index 4a155ecf51e..4a155ecf51e 100644
--- a/components/util/resource_files.rs
+++ b/components/config/resource_files.rs
diff --git a/components/constellation/Cargo.toml b/components/constellation/Cargo.toml
index 1734ec27df8..d919cd63af3 100644
--- a/components/constellation/Cargo.toml
+++ b/components/constellation/Cargo.toml
@@ -33,8 +33,9 @@ script_traits = {path = "../script_traits"}
serde = "0.8"
serde_derive = "0.8"
style_traits = {path = "../style_traits"}
+servo_config = {path = "../config", features = ["servo"]}
+servo_remutex = {path = "../remutex"}
servo_url = {path = "../url", features = ["servo"]}
-util = {path = "../util"}
[dependencies.webrender_traits]
git = "https://github.com/servo/webrender"
diff --git a/components/constellation/constellation.rs b/components/constellation/constellation.rs
index 2e6b5071d41..22ed1842441 100644
--- a/components/constellation/constellation.rs
+++ b/components/constellation/constellation.rs
@@ -47,6 +47,9 @@ use script_traits::{LayoutMsg as FromLayoutMsg, ScriptMsg as FromScriptMsg, Scri
use script_traits::{LogEntry, ServiceWorkerMsg, webdriver_msg};
use script_traits::{MozBrowserErrorType, MozBrowserEvent, WebDriverCommandMsg, WindowSizeData};
use script_traits::{SWManagerMsg, ScopeThings, WindowSizeType};
+use servo_config::opts;
+use servo_config::prefs::PREFS;
+use servo_remutex::ReentrantMutex;
use servo_url::ServoUrl;
use std::borrow::ToOwned;
use std::collections::{HashMap, VecDeque};
@@ -64,10 +67,6 @@ use style_traits::PagePx;
use style_traits::cursor::Cursor;
use style_traits::viewport::ViewportConstraints;
use timer_scheduler::TimerScheduler;
-use util::opts;
-use util::prefs::PREFS;
-use util::remutex::ReentrantMutex;
-use util::thread::spawn_named;
use webrender_traits;
#[derive(Debug, PartialEq)]
@@ -505,7 +504,7 @@ impl<Message, LTF, STF> Constellation<Message, LTF, STF>
let (swmanager_sender, swmanager_receiver) = ipc::channel().expect("ipc channel failure");
let sw_mgr_clone = swmanager_sender.clone();
- spawn_named("Constellation".to_owned(), move || {
+ thread::Builder::new().name("Constellation".to_owned()).spawn(move || {
let (ipc_script_sender, ipc_script_receiver) = ipc::channel().expect("ipc channel failure");
let script_receiver = ROUTER.route_ipc_receiver_to_new_mpsc_receiver(ipc_script_receiver);
@@ -568,7 +567,8 @@ impl<Message, LTF, STF> Constellation<Message, LTF, STF>
};
constellation.run();
- });
+ }).expect("Thread spawning failed");
+
(compositor_sender, swmanager_sender)
}
diff --git a/components/constellation/lib.rs b/components/constellation/lib.rs
index 7d455d954b2..5a731311a7f 100644
--- a/components/constellation/lib.rs
+++ b/components/constellation/lib.rs
@@ -36,10 +36,10 @@ extern crate script_traits;
extern crate serde;
#[macro_use]
extern crate serde_derive;
+extern crate servo_config;
+extern crate servo_remutex;
extern crate servo_url;
extern crate style_traits;
-#[macro_use]
-extern crate util;
extern crate webrender_traits;
mod constellation;
diff --git a/components/constellation/pipeline.rs b/components/constellation/pipeline.rs
index 9784a68d57d..4f898e0377b 100644
--- a/components/constellation/pipeline.rs
+++ b/components/constellation/pipeline.rs
@@ -24,6 +24,8 @@ use script_traits::{ConstellationControlMsg, InitialScriptState};
use script_traits::{LayoutControlMsg, LayoutMsg, LoadData, MozBrowserEvent};
use script_traits::{NewLayoutInfo, SWManagerMsg, SWManagerSenders, ScriptMsg};
use script_traits::{ScriptThreadFactory, TimerEventRequest, WindowSizeData};
+use servo_config::opts::{self, Opts};
+use servo_config::prefs::{PREFS, Pref};
use servo_url::ServoUrl;
use std::collections::HashMap;
use std::env;
@@ -33,8 +35,6 @@ use std::process;
use std::rc::Rc;
use std::sync::mpsc::Sender;
use style_traits::{PagePx, ViewportPx};
-use util::opts::{self, Opts};
-use util::prefs::{PREFS, Pref};
use webrender_traits;
/// A uniquely-identifiable pipeline of script thread, layout thread, and paint thread.
diff --git a/components/constellation/sandboxing.rs b/components/constellation/sandboxing.rs
index 380155b562f..a51fd4b8ef1 100644
--- a/components/constellation/sandboxing.rs
+++ b/components/constellation/sandboxing.rs
@@ -3,8 +3,8 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use gaol::profile::{Operation, PathPattern, Profile};
+use servo_config::resource_files;
use std::path::PathBuf;
-use util::resource_files;
/// Our content process sandbox profile on Mac. As restrictive as possible.
#[cfg(target_os = "macos")]
diff --git a/components/debugger/Cargo.toml b/components/debugger/Cargo.toml
index e9b097e5963..b9385d80e1e 100644
--- a/components/debugger/Cargo.toml
+++ b/components/debugger/Cargo.toml
@@ -12,7 +12,6 @@ crate_type = ["rlib"]
[dependencies]
log = "0.3.5"
-util = {path = "../util"}
[target.'cfg(not(target_os = "android"))'.dependencies]
ws = "0.5.3"
diff --git a/components/debugger/lib.rs b/components/debugger/lib.rs
index 25983561d5d..25b3c4890a6 100644
--- a/components/debugger/lib.rs
+++ b/components/debugger/lib.rs
@@ -4,13 +4,12 @@
#[macro_use]
extern crate log;
-extern crate util;
#[cfg(not(target_os = "android"))]
extern crate ws;
use std::sync::mpsc;
use std::sync::mpsc::channel;
-use util::thread::spawn_named;
+use std::thread;
#[cfg(not(target_os = "android"))]
use ws::{Builder, CloseCode, Handler, Handshake};
@@ -45,14 +44,14 @@ impl Handler for Connection {
pub fn start_server(port: u16) -> Sender {
debug!("Starting server.");
let (sender, receiver) = channel();
- spawn_named("debugger".to_owned(), move || {
+ thread::Builder::new().name("debugger".to_owned()).spawn(move || {
let socket = Builder::new().build(|sender: ws::Sender| {
Connection { sender: sender }
}).unwrap();
let sender = socket.broadcaster();
- spawn_named("debugger-websocket".to_owned(), move || {
+ thread::Builder::new().name("debugger-websocket".to_owned()).spawn(move || {
socket.listen(("127.0.0.1", port)).unwrap();
- });
+ }).expect("Thread spawning failed");
while let Ok(message) = receiver.recv() {
match message {
Message::ShutdownServer => {
@@ -61,7 +60,7 @@ pub fn start_server(port: u16) -> Sender {
}
}
sender.shutdown().unwrap();
- });
+ }).expect("Thread spawning failed");
Sender(sender)
}
diff --git a/components/devtools/Cargo.toml b/components/devtools/Cargo.toml
index caa5f1755b3..e6b877f1e6d 100644
--- a/components/devtools/Cargo.toml
+++ b/components/devtools/Cargo.toml
@@ -22,4 +22,3 @@ serde = "0.8"
serde_json = "0.8"
serde_derive = "0.8"
time = "0.1"
-util = {path = "../util"}
diff --git a/components/devtools/actors/timeline.rs b/components/devtools/actors/timeline.rs
index 0d495faf7c2..6285faafabf 100644
--- a/components/devtools/actors/timeline.rs
+++ b/components/devtools/actors/timeline.rs
@@ -19,7 +19,6 @@ use std::net::TcpStream;
use std::sync::{Arc, Mutex};
use std::thread;
use std::time::Duration;
-use util::thread::spawn_named;
pub struct TimelineActor {
name: String,
@@ -150,7 +149,7 @@ impl TimelineActor {
return;
}
- spawn_named("PullTimelineMarkers".to_owned(), move || {
+ thread::Builder::new().name("PullTimelineMarkers".to_owned()).spawn(move || {
loop {
if !*is_recording.lock().unwrap() {
break;
@@ -164,7 +163,7 @@ impl TimelineActor {
thread::sleep(Duration::from_millis(DEFAULT_TIMELINE_DATA_PULL_TIMEOUT));
}
- });
+ }).expect("Thread spawning failed");
}
}
diff --git a/components/devtools/lib.rs b/components/devtools/lib.rs
index 815bee12a88..c98bb270333 100644
--- a/components/devtools/lib.rs
+++ b/components/devtools/lib.rs
@@ -30,7 +30,6 @@ extern crate serde;
extern crate serde_derive;
extern crate serde_json;
extern crate time;
-extern crate util;
use actor::{Actor, ActorRegistry};
use actors::console::ConsoleActor;
@@ -57,8 +56,8 @@ use std::collections::hash_map::Entry::{Occupied, Vacant};
use std::net::{Shutdown, TcpListener, TcpStream};
use std::sync::{Arc, Mutex};
use std::sync::mpsc::{Receiver, Sender, channel};
+use std::thread;
use time::precise_time_ns;
-use util::thread::spawn_named;
mod actor;
/// Corresponds to http://mxr.mozilla.org/mozilla-central/source/toolkit/devtools/server/actors/
@@ -137,9 +136,9 @@ pub fn start_server(port: u16) -> Sender<DevtoolsControlMsg> {
let (sender, receiver) = channel();
{
let sender = sender.clone();
- spawn_named("Devtools".to_owned(), move || {
+ thread::Builder::new().name("Devtools".to_owned()).spawn(move || {
run_server(sender, receiver, port)
- });
+ }).expect("Thread spawning failed");
}
sender
}
@@ -485,23 +484,23 @@ fn run_server(sender: Sender<DevtoolsControlMsg>,
}
let sender_clone = sender.clone();
- spawn_named("DevtoolsClientAcceptor".to_owned(), move || {
+ thread::Builder::new().name("DevtoolsClientAcceptor".to_owned()).spawn(move || {
// accept connections and process them, spawning a new thread for each one
for stream in listener.incoming() {
// connection succeeded
sender_clone.send(DevtoolsControlMsg::FromChrome(
ChromeToDevtoolsControlMsg::AddClient(stream.unwrap()))).unwrap();
}
- });
+ }).expect("Thread spawning failed");
while let Ok(msg) = receiver.recv() {
match msg {
DevtoolsControlMsg::FromChrome(ChromeToDevtoolsControlMsg::AddClient(stream)) => {
let actors = actors.clone();
accepted_connections.push(stream.try_clone().unwrap());
- spawn_named("DevtoolsClientHandler".to_owned(), move || {
+ thread::Builder::new().name("DevtoolsClientHandler".to_owned()).spawn(move || {
handle_client(actors, stream.try_clone().unwrap())
- })
+ }).expect("Thread spawning failed");
}
DevtoolsControlMsg::FromScript(ScriptToDevtoolsControlMsg::FramerateTick(
actor_name, tick)) =>
diff --git a/components/geometry/Cargo.toml b/components/geometry/Cargo.toml
new file mode 100644
index 00000000000..28480439060
--- /dev/null
+++ b/components/geometry/Cargo.toml
@@ -0,0 +1,19 @@
+[package]
+name = "servo_geometry"
+version = "0.0.1"
+authors = ["The Servo Project Developers"]
+license = "MPL-2.0"
+publish = false
+
+[lib]
+name = "servo_geometry"
+path = "lib.rs"
+
+[features]
+# servo as opposed to geckolib
+servo = ["app_units/plugins", "euclid/unstable"]
+
+[dependencies]
+app_units = "0.3"
+euclid = "0.10.1"
+heapsize = "0.3.0"
diff --git a/components/util/geometry.rs b/components/geometry/lib.rs
index 2d102d2d0dc..52fcd420c0e 100644
--- a/components/util/geometry.rs
+++ b/components/geometry/lib.rs
@@ -2,6 +2,10 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+extern crate app_units;
+#[macro_use] extern crate euclid;
+#[macro_use] extern crate heapsize;
+
use app_units::{Au, MAX_AU};
use euclid::point::Point2D;
use euclid::rect::Rect;
diff --git a/components/gfx/Cargo.toml b/components/gfx/Cargo.toml
index c61b2072f15..81bcb81268e 100644
--- a/components/gfx/Cargo.toml
+++ b/components/gfx/Cargo.toml
@@ -32,6 +32,7 @@ range = {path = "../range"}
rustc-serialize = "0.3"
serde = "0.8"
servo_atoms = {path = "../atoms"}
+servo_geometry = {path = "../geometry"}
servo_url = {path = "../url"}
serde_derive = "0.8"
smallvec = "0.1"
@@ -39,7 +40,6 @@ style = {path = "../style"}
style_traits = {path = "../style_traits"}
time = "0.1.12"
unicode-script = {version = "0.1", features = ["harfbuzz"]}
-util = {path = "../util"}
xi-unicode = "0.0.1"
[dependencies.webrender_traits]
diff --git a/components/gfx/display_list/mod.rs b/components/gfx/display_list/mod.rs
index ab8f1ba7a8f..eeb78f9f9e7 100644
--- a/components/gfx/display_list/mod.rs
+++ b/components/gfx/display_list/mod.rs
@@ -25,6 +25,7 @@ use ipc_channel::ipc::IpcSharedMemory;
use msg::constellation_msg::PipelineId;
use net_traits::image::base::{Image, PixelFormat};
use range::Range;
+use servo_geometry::{au_rect_to_f32_rect, f32_rect_to_au_rect, max_rect};
use std::cmp::{self, Ordering};
use std::collections::HashMap;
use std::fmt;
@@ -33,7 +34,6 @@ use style::computed_values::{border_style, filter, image_rendering, mix_blend_mo
use style_traits::cursor::Cursor;
use text::TextRun;
use text::glyph::ByteIndex;
-use util::geometry::{self, max_rect};
use webrender_traits::{self, ColorF, GradientStop, WebGLContextId};
pub use style::dom::OpaqueNode;
@@ -397,9 +397,9 @@ impl StackingContext {
.pre_mul(&self.transform);
let transform_2d = transform.to_2d();
- let overflow = geometry::au_rect_to_f32_rect(self.overflow);
+ let overflow = au_rect_to_f32_rect(self.overflow);
let overflow = transform_2d.transform_rect(&overflow);
- geometry::f32_rect_to_au_rect(overflow)
+ f32_rect_to_au_rect(overflow)
}
pub fn print_with_tree(&self, print_tree: &mut PrintTree) {
diff --git a/components/gfx/font_cache_thread.rs b/components/gfx/font_cache_thread.rs
index edad5aa56d1..e210d47998f 100644
--- a/components/gfx/font_cache_thread.rs
+++ b/components/gfx/font_cache_thread.rs
@@ -21,10 +21,10 @@ use std::collections::HashMap;
use std::mem;
use std::ops::Deref;
use std::sync::{Arc, Mutex};
+use std::thread;
use std::u32;
use style::font_face::{EffectiveSources, Source};
use style::properties::longhands::font_family::computed_value::FontFamily;
-use util::thread::spawn_named;
use webrender_traits;
/// A list of font templates that make up a given font family.
@@ -396,7 +396,7 @@ impl FontCacheThread {
let (chan, port) = ipc::channel().unwrap();
let channel_to_self = chan.clone();
- spawn_named("FontCacheThread".to_owned(), move || {
+ thread::Builder::new().name("FontCacheThread".to_owned()).spawn(move || {
// TODO: Allow users to specify these.
let generic_fonts = populate_generic_fonts();
@@ -414,7 +414,7 @@ impl FontCacheThread {
cache.refresh_local_families();
cache.run();
- });
+ }).expect("Thread spawning failed");
FontCacheThread {
chan: chan,
diff --git a/components/gfx/lib.rs b/components/gfx/lib.rs
index 32fd79875ea..3095074b126 100644
--- a/components/gfx/lib.rs
+++ b/components/gfx/lib.rs
@@ -63,6 +63,7 @@ extern crate rustc_serialize;
extern crate serde;
#[macro_use]
extern crate serde_derive;
+extern crate servo_geometry;
extern crate servo_url;
#[macro_use] extern crate servo_atoms;
#[cfg(any(target_arch = "x86_64", target_arch = "aarch64"))]
@@ -72,7 +73,6 @@ extern crate style;
extern crate style_traits;
extern crate time;
extern crate unicode_script;
-extern crate util;
extern crate webrender_traits;
extern crate xi_unicode;
diff --git a/components/layout/Cargo.toml b/components/layout/Cargo.toml
index 6443c4a6aa3..9196f559afa 100644
--- a/components/layout/Cargo.toml
+++ b/components/layout/Cargo.toml
@@ -39,13 +39,13 @@ serde = "0.8"
serde_derive = "0.8"
serde_json = "0.8"
servo_atoms = {path = "../atoms"}
+servo_config = {path = "../config"}
servo_url = {path = "../url"}
smallvec = "0.1"
style = {path = "../style"}
style_traits = {path = "../style_traits"}
unicode-bidi = "0.2"
unicode-script = {version = "0.1", features = ["harfbuzz"]}
-util = {path = "../util"}
[dependencies.webrender_traits]
git = "https://github.com/servo/webrender"
diff --git a/components/layout/block.rs b/components/layout/block.rs
index 6db30de9bec..9d38627b80f 100644
--- a/components/layout/block.rs
+++ b/components/layout/block.rs
@@ -61,7 +61,6 @@ use style::properties::ServoComputedValues;
use style::servo::restyle_damage::{BUBBLE_ISIZES, REFLOW, REFLOW_OUT_OF_FLOW, REPOSITION};
use style::values::computed::{LengthOrPercentageOrNone, LengthOrPercentage};
use style::values::computed::LengthOrPercentageOrAuto;
-use util::clamp;
/// Information specific to floated blocks.
#[derive(Clone, Serialize)]
@@ -1534,7 +1533,7 @@ impl BlockFlow {
size + self.fragment.border_padding.inline_start_end(),
}
} else {
- clamp(min_inline_size, available_inline_size, max_inline_size)
+ max(min_inline_size, min(available_inline_size, max_inline_size))
};
self.base.position.size.inline = inline_size + self.fragment.margin.inline_start_end();
diff --git a/components/layout/construct.rs b/components/layout/construct.rs
index b25923d19c2..394b5d91fcf 100644
--- a/components/layout/construct.rs
+++ b/components/layout/construct.rs
@@ -38,6 +38,7 @@ use multicol::{MulticolColumnFlow, MulticolFlow};
use parallel;
use script_layout_interface::{LayoutElementType, LayoutNodeType, is_image_data};
use script_layout_interface::wrapper_traits::{PseudoElementType, ThreadSafeLayoutElement, ThreadSafeLayoutNode};
+use servo_config::opts;
use servo_url::ServoUrl;
use std::borrow::ToOwned;
use std::collections::LinkedList;
@@ -64,7 +65,6 @@ use table_rowgroup::TableRowGroupFlow;
use table_wrapper::TableWrapperFlow;
use text::TextRunScanner;
use traversal::PostorderNodeMutTraversal;
-use util::opts;
use wrapper::{LayoutNodeLayoutData, TextContent, ThreadSafeLayoutNodeHelpers};
/// The results of flow construction for a DOM node.
diff --git a/components/layout/context.rs b/components/layout/context.rs
index b8d7c8680df..23ec3e41d88 100644
--- a/components/layout/context.rs
+++ b/components/layout/context.rs
@@ -17,6 +17,7 @@ use net_traits::image::base::Image;
use net_traits::image_cache_thread::{ImageCacheChan, ImageCacheThread, ImageResponse, ImageState};
use net_traits::image_cache_thread::{ImageOrMetadataAvailable, UsePlaceholder};
use parking_lot::RwLock;
+use servo_config::opts;
use servo_url::ServoUrl;
use std::borrow::Borrow;
use std::cell::{RefCell, RefMut};
@@ -25,7 +26,6 @@ use std::hash::BuildHasherDefault;
use std::rc::Rc;
use std::sync::{Arc, Mutex};
use style::context::{LocalStyleContext, StyleContext, SharedStyleContext};
-use util::opts;
struct LocalLayoutContext {
style_context: LocalStyleContext,
diff --git a/components/layout/display_list_builder.rs b/components/layout/display_list_builder.rs
index 60b1ecedc19..f2534729e5f 100644
--- a/components/layout/display_list_builder.rs
+++ b/components/layout/display_list_builder.rs
@@ -35,6 +35,7 @@ use model::{self, MaybeAuto, ToGfxMatrix};
use net_traits::image::base::PixelFormat;
use net_traits::image_cache_thread::UsePlaceholder;
use range::Range;
+use servo_config::opts;
use servo_url::ServoUrl;
use std::{cmp, f32};
use std::collections::HashMap;
@@ -57,7 +58,6 @@ use style::values::computed::{Gradient, GradientKind, LengthOrPercentage, Length
use style::values::specified::{AngleOrCorner, HorizontalDirection, VerticalDirection};
use style_traits::cursor::Cursor;
use table_cell::CollapsedBordersForCell;
-use util::opts;
use webrender_traits::{ColorF, GradientStop};
trait RgbColor {
diff --git a/components/layout/lib.rs b/components/layout/lib.rs
index a74bea33431..b2aaa006a2a 100644
--- a/components/layout/lib.rs
+++ b/components/layout/lib.rs
@@ -49,13 +49,13 @@ extern crate serde;
extern crate serde_derive;
extern crate serde_json;
#[macro_use] extern crate servo_atoms;
+extern crate servo_config;
extern crate servo_url;
extern crate smallvec;
extern crate style;
extern crate style_traits;
extern crate unicode_bidi;
extern crate unicode_script;
-extern crate util;
extern crate webrender_traits;
#[macro_use]
diff --git a/components/layout/parallel.rs b/components/layout/parallel.rs
index 03aaa512d3e..6422ab674a9 100644
--- a/components/layout/parallel.rs
+++ b/components/layout/parallel.rs
@@ -13,13 +13,13 @@ use flow::{self, Flow, MutableFlowUtils, PostorderFlowTraversal, PreorderFlowTra
use flow_ref::FlowRef;
use profile_traits::time::{self, TimerMetadata, profile};
use rayon;
+use servo_config::opts;
use std::mem;
use std::sync::atomic::{AtomicIsize, Ordering};
use style::dom::UnsafeNode;
use style::parallel::CHUNK_SIZE;
use traversal::{AssignISizes, BubbleISizes};
use traversal::AssignBSizes;
-use util::opts;
pub use style::parallel::traverse_dom;
diff --git a/components/layout/sequential.rs b/components/layout/sequential.rs
index 71626243206..b4d31269629 100644
--- a/components/layout/sequential.rs
+++ b/components/layout/sequential.rs
@@ -15,10 +15,10 @@ use flow::IS_ABSOLUTELY_POSITIONED;
use fragment::FragmentBorderBoxIterator;
use generated_content::ResolveGeneratedContent;
use gfx_traits::ScrollRootId;
+use servo_config::opts;
use style::context::StyleContext;
use style::servo::restyle_damage::{REFLOW, STORE_OVERFLOW};
use traversal::{AssignBSizes, AssignISizes, BubbleISizes, BuildDisplayList};
-use util::opts;
pub use style::sequential::traverse_dom;
diff --git a/components/layout/traversal.rs b/components/layout/traversal.rs
index 04ea73056aa..bda40df574f 100644
--- a/components/layout/traversal.rs
+++ b/components/layout/traversal.rs
@@ -11,6 +11,7 @@ use flow::{self, PreorderFlowTraversal};
use flow::{CAN_BE_FRAGMENTED, Flow, ImmutableFlowUtils, PostorderFlowTraversal};
use gfx::display_list::OpaqueNode;
use script_layout_interface::wrapper_traits::{LayoutNode, ThreadSafeLayoutNode};
+use servo_config::opts;
use std::mem;
use style::atomic_refcell::AtomicRefCell;
use style::context::{LocalStyleContext, SharedStyleContext, StyleContext};
@@ -20,7 +21,6 @@ use style::selector_parser::RestyleDamage;
use style::servo::restyle_damage::{BUBBLE_ISIZES, REFLOW, REFLOW_OUT_OF_FLOW, REPAINT};
use style::traversal::{DomTraversalContext, recalc_style_at, remove_from_bloom_filter};
use style::traversal::PerLevelTraversalData;
-use util::opts;
use wrapper::{GetRawData, LayoutNodeHelpers, LayoutNodeLayoutData};
pub struct RecalcStyleAndConstructFlows<'lc> {
diff --git a/components/layout_thread/Cargo.toml b/components/layout_thread/Cargo.toml
index 3f750cf70fa..b145d71ea44 100644
--- a/components/layout_thread/Cargo.toml
+++ b/components/layout_thread/Cargo.toml
@@ -34,9 +34,10 @@ script_traits = {path = "../script_traits"}
selectors = "0.15"
serde_derive = "0.8"
serde_json = "0.8"
+servo_config = {path = "../config"}
+servo_geometry = {path = "../geometry"}
servo_url = {path = "../url"}
style = {path = "../style"}
-util = {path = "../util"}
[dependencies.webrender_traits]
git = "https://github.com/servo/webrender"
diff --git a/components/layout_thread/lib.rs b/components/layout_thread/lib.rs
index ea834095e6e..f44207cb367 100644
--- a/components/layout_thread/lib.rs
+++ b/components/layout_thread/lib.rs
@@ -40,9 +40,10 @@ extern crate script_layout_interface;
extern crate script_traits;
extern crate selectors;
extern crate serde_json;
+extern crate servo_config;
+extern crate servo_geometry;
extern crate servo_url;
extern crate style;
-extern crate util;
extern crate webrender_traits;
use app_units::Au;
@@ -94,6 +95,10 @@ use script_layout_interface::wrapper_traits::LayoutNode;
use script_traits::{ConstellationControlMsg, LayoutControlMsg, LayoutMsg as ConstellationMsg};
use script_traits::{StackingContextScrollState, UntrustedNodeAddress};
use selectors::Element;
+use servo_config::opts;
+use servo_config::prefs::PREFS;
+use servo_config::resource_files::read_resource_file;
+use servo_geometry::max_rect;
use servo_url::ServoUrl;
use std::borrow::ToOwned;
use std::collections::HashMap;
@@ -103,6 +108,7 @@ use std::process;
use std::sync::{Arc, Mutex, MutexGuard};
use std::sync::atomic::{AtomicUsize, Ordering};
use std::sync::mpsc::{Receiver, Sender, channel};
+use std::thread;
use style::animation::Animation;
use style::context::{LocalStyleContextCreationInfo, ReflowGoal, SharedStyleContext};
use style::data::StoredRestyleHint;
@@ -117,11 +123,6 @@ use style::stylist::Stylist;
use style::thread_state;
use style::timer::Timer;
use style::traversal::DomTraversalContext;
-use util::geometry::max_rect;
-use util::opts;
-use util::prefs::PREFS;
-use util::resource_files::read_resource_file;
-use util::thread;
/// Information needed by the layout thread.
pub struct LayoutThread {
@@ -229,7 +230,7 @@ pub struct LayoutThread {
/// only be a test-mode timer during testing for animations.
timer: Timer,
- // Number of layout threads. This is copied from `util::opts`, but we'd
+ // Number of layout threads. This is copied from `servo_config::opts`, but we'd
// rather limit the dependency on that module here.
layout_threads: usize,
}
@@ -253,8 +254,7 @@ impl LayoutThreadFactory for LayoutThread {
content_process_shutdown_chan: Option<IpcSender<()>>,
webrender_api_sender: webrender_traits::RenderApiSender,
layout_threads: usize) {
- thread::spawn_named(format!("LayoutThread {:?}", id),
- move || {
+ thread::Builder::new().name(format!("LayoutThread {:?}", id)).spawn(move || {
thread_state::initialize(thread_state::LAYOUT);
if let Some(top_level_frame_id) = top_level_frame_id {
@@ -285,7 +285,7 @@ impl LayoutThreadFactory for LayoutThread {
if let Some(content_process_shutdown_chan) = content_process_shutdown_chan {
let _ = content_process_shutdown_chan.send(());
}
- });
+ }).expect("Thread spawning failed");
}
}
diff --git a/components/net/Cargo.toml b/components/net/Cargo.toml
index 758f9b3aa20..a6949734bf3 100644
--- a/components/net/Cargo.toml
+++ b/components/net/Cargo.toml
@@ -34,12 +34,12 @@ profile_traits = {path = "../profile_traits"}
rustc-serialize = "0.3"
serde = "0.8"
serde_derive = "0.8"
+servo_config = {path = "../config"}
servo_url = {path = "../url"}
threadpool = "1.0"
time = "0.1.17"
unicase = "1.4.0"
url = {version = "1.2", features = ["heap_size", "rustc-serialize"]}
-util = {path = "../util"}
uuid = {version = "0.3.1", features = ["v4"]}
websocket = "0.17"
diff --git a/components/net/chrome_loader.rs b/components/net/chrome_loader.rs
index 6ddb096548a..83b5b59da4a 100644
--- a/components/net/chrome_loader.rs
+++ b/components/net/chrome_loader.rs
@@ -2,10 +2,10 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+use servo_config::resource_files::resources_dir_path;
use servo_url::ServoUrl;
use std::fs::canonicalize;
use url::percent_encoding::percent_decode;
-use util::resource_files::resources_dir_path;
pub fn resolve_chrome_url(url: &ServoUrl) -> Result<ServoUrl, ()> {
assert_eq!(url.scheme(), "chrome");
diff --git a/components/net/connector.rs b/components/net/connector.rs
index 4040c929dc5..3e4a8071f28 100644
--- a/components/net/connector.rs
+++ b/components/net/connector.rs
@@ -6,8 +6,8 @@ use hyper::client::Pool;
use hyper::net::{HttpStream, HttpsConnector, SslClient};
use openssl::ssl::{SSL_OP_NO_COMPRESSION, SSL_OP_NO_SSLV2, SSL_OP_NO_SSLV3, SSL_VERIFY_PEER};
use openssl::ssl::{Ssl, SslContext, SslMethod, SslStream};
+use servo_config::resource_files::resources_dir_path;
use std::sync::Arc;
-use util::resource_files::resources_dir_path;
pub type Connector = HttpsConnector<ServoSslClient>;
diff --git a/components/net/content_blocker.rs b/components/net/content_blocker.rs
index c30961263dc..eb7f8e1a130 100644
--- a/components/net/content_blocker.rs
+++ b/components/net/content_blocker.rs
@@ -3,9 +3,9 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use content_blocker_parser::{RuleList, parse_list};
+use servo_config::resource_files::read_resource_file;
use std::str;
use std::sync::Arc;
-use util::resource_files::read_resource_file;
lazy_static! {
pub static ref BLOCKED_CONTENT_RULES: Arc<Option<RuleList>> = Arc::new(create_rule_list());
diff --git a/components/net/filemanager_thread.rs b/components/net/filemanager_thread.rs
index 641b1394539..0fa1aeeca9c 100644
--- a/components/net/filemanager_thread.rs
+++ b/components/net/filemanager_thread.rs
@@ -7,6 +7,7 @@ use mime_guess::guess_mime_type_opt;
use net_traits::blob_url_store::{BlobBuf, BlobURLStoreError};
use net_traits::filemanager_thread::{FileManagerResult, FileManagerThreadMsg, FileOrigin, FilterPattern};
use net_traits::filemanager_thread::{FileManagerThreadError, ReadFileProgress, RelativePos, SelectedFile};
+use servo_config::prefs::PREFS;
use std::collections::HashMap;
use std::fs::File;
use std::io::{Read, Seek, SeekFrom};
@@ -14,11 +15,10 @@ use std::ops::Index;
use std::path::{Path, PathBuf};
use std::sync::{Arc, RwLock};
use std::sync::atomic::{self, AtomicBool, AtomicUsize, Ordering};
+use std::thread;
#[cfg(any(target_os = "macos", target_os = "linux", target_os = "windows"))]
use tinyfiledialogs;
use url::Url;
-use util::prefs::PREFS;
-use util::thread::spawn_named;
use uuid::Uuid;
/// The provider of file-dialog UI should implement this trait.
@@ -129,12 +129,12 @@ impl FileManager {
check_url_validity: bool,
origin: FileOrigin) {
let store = self.store.clone();
- spawn_named("read file".to_owned(), move || {
+ thread::Builder::new().name("read file".to_owned()).spawn(move || {
if let Err(e) = store.try_read_file(&sender, id, check_url_validity,
origin) {
let _ = sender.send(Err(FileManagerThreadError::BlobURLStoreError(e)));
}
- })
+ }).expect("Thread spawning failed");
}
pub fn promote_memory(&self,
@@ -143,9 +143,9 @@ impl FileManager {
sender: IpcSender<Result<Uuid, BlobURLStoreError>>,
origin: FileOrigin) {
let store = self.store.clone();
- spawn_named("transfer memory".to_owned(), move || {
+ thread::Builder::new().name("transfer memory".to_owned()).spawn(move || {
store.promote_memory(blob_buf, set_valid, sender, origin);
- })
+ }).expect("Thread spawning failed");
}
/// Message handler
@@ -157,15 +157,15 @@ impl FileManager {
match msg {
FileManagerThreadMsg::SelectFile(filter, sender, origin, opt_test_path) => {
let store = self.store.clone();
- spawn_named("select file".to_owned(), move || {
+ thread::Builder::new().name("select file".to_owned()).spawn(move || {
store.select_file(filter, sender, origin, opt_test_path, ui);
- });
+ }).expect("Thread spawning failed");
}
FileManagerThreadMsg::SelectFiles(filter, sender, origin, opt_test_paths) => {
let store = self.store.clone();
- spawn_named("select files".to_owned(), move || {
+ thread::Builder::new().name("select files".to_owned()).spawn(move || {
store.select_files(filter, sender, origin, opt_test_paths, ui);
- })
+ }).expect("Thread spawning failed");
}
FileManagerThreadMsg::ReadFile(sender, id, check_url_validity, origin) => {
self.read_file(sender, id, check_url_validity, origin);
diff --git a/components/net/hsts.rs b/components/net/hsts.rs
index 662ec7b8088..6b8665bd2e5 100644
--- a/components/net/hsts.rs
+++ b/components/net/hsts.rs
@@ -4,11 +4,11 @@
use net_traits::IncludeSubdomains;
use rustc_serialize::json::decode;
+use servo_config::resource_files::read_resource_file;
use std::net::{Ipv4Addr, Ipv6Addr};
use std::str::from_utf8;
use time;
use url::Url;
-use util::resource_files::read_resource_file;
#[derive(RustcDecodable, RustcEncodable, Clone)]
pub struct HstsEntry {
diff --git a/components/net/http_loader.rs b/components/net/http_loader.rs
index 6199c45209f..f42d49617c1 100644
--- a/components/net/http_loader.rs
+++ b/components/net/http_loader.rs
@@ -47,11 +47,11 @@ use std::ops::Deref;
use std::rc::Rc;
use std::sync::{Arc, RwLock};
use std::sync::mpsc::{channel, Sender};
+use std::thread;
use time;
use time::Tm;
use unicase::UniCase;
use url::Origin as UrlOrigin;
-use util::thread::spawn_named;
use uuid;
fn read_block<R: Read>(reader: &mut R) -> Result<Data, ()> {
@@ -1071,7 +1071,7 @@ fn http_network_fetch(request: Rc<Request>,
let devtools_sender = context.devtools_chan.clone();
let meta_status = meta.status.clone();
let meta_headers = meta.headers.clone();
- spawn_named(format!("fetch worker thread"), move || {
+ thread::Builder::new().name(format!("fetch worker thread")).spawn(move || {
match StreamedResponse::from_http_response(res) {
Ok(mut res) => {
*res_body.lock().unwrap() = ResponseBody::Receiving(vec![]);
@@ -1123,7 +1123,7 @@ fn http_network_fetch(request: Rc<Request>,
let _ = done_sender.send(Data::Done);
}
}
- });
+ }).expect("Thread spawning failed");
// TODO these substeps aren't possible yet
// Substep 1
diff --git a/components/net/image_cache_thread.rs b/components/net/image_cache_thread.rs
index 5976ec50885..b466374d381 100644
--- a/components/net/image_cache_thread.rs
+++ b/components/net/image_cache_thread.rs
@@ -11,6 +11,7 @@ use net_traits::image_cache_thread::{ImageCacheChan, ImageCacheCommand, ImageCac
use net_traits::image_cache_thread::{ImageCacheResult, ImageOrMetadataAvailable, ImageResponse, UsePlaceholder};
use net_traits::image_cache_thread::ImageResponder;
use net_traits::request::{Destination, RequestInit, Type as RequestType};
+use servo_config::resource_files::resources_dir_path;
use servo_url::ServoUrl;
use std::borrow::ToOwned;
use std::collections::HashMap;
@@ -20,9 +21,8 @@ use std::io::{self, Read};
use std::mem;
use std::sync::Arc;
use std::sync::mpsc::{Receiver, Sender, channel};
+use std::thread;
use threadpool::ThreadPool;
-use util::resource_files::resources_dir_path;
-use util::thread::spawn_named;
use webrender_traits;
///
@@ -648,9 +648,9 @@ pub fn new_image_cache_thread(core_resource_thread: CoreResourceThread,
webrender_api: webrender_traits::RenderApi) -> ImageCacheThread {
let (ipc_command_sender, ipc_command_receiver) = ipc::channel().unwrap();
- spawn_named("ImageCacheThread".to_owned(), move || {
+ thread::Builder::new().name("ImageCacheThread".to_owned()).spawn(move || {
ImageCache::run(core_resource_thread, webrender_api, ipc_command_receiver)
- });
+ }).expect("Thread spawning failed");
ImageCacheThread::new(ipc_command_sender)
}
diff --git a/components/net/lib.rs b/components/net/lib.rs
index e5f3951d542..c1925df8616 100644
--- a/components/net/lib.rs
+++ b/components/net/lib.rs
@@ -35,6 +35,7 @@ extern crate profile_traits;
extern crate rustc_serialize;
#[macro_use]
extern crate serde_derive;
+extern crate servo_config;
extern crate servo_url;
extern crate threadpool;
extern crate time;
@@ -42,7 +43,6 @@ extern crate time;
extern crate tinyfiledialogs;
extern crate unicase;
extern crate url;
-extern crate util;
extern crate uuid;
extern crate webrender_traits;
extern crate websocket;
diff --git a/components/net/resource_thread.rs b/components/net/resource_thread.rs
index aef1ee314d2..7055f928ad7 100644
--- a/components/net/resource_thread.rs
+++ b/components/net/resource_thread.rs
@@ -37,8 +37,8 @@ use std::path::{Path, PathBuf};
use std::rc::Rc;
use std::sync::{Arc, RwLock};
use std::sync::mpsc::Sender;
+use std::thread;
use storage_thread::StorageThreadFactory;
-use util::thread::spawn_named;
use websocket_loader;
const TFD_PROVIDER: &'static TFDProvider = &TFDProvider;
@@ -76,7 +76,7 @@ pub fn new_core_resource_thread(user_agent: Cow<'static, str>,
-> (CoreResourceThread, CoreResourceThread) {
let (public_setup_chan, public_setup_port) = ipc::channel().unwrap();
let (private_setup_chan, private_setup_port) = ipc::channel().unwrap();
- spawn_named("ResourceManager".to_owned(), move || {
+ thread::Builder::new().name("ResourceManager".to_owned()).spawn(move || {
let resource_manager = CoreResourceManager::new(
user_agent, devtools_chan, profiler_chan
);
@@ -87,7 +87,7 @@ pub fn new_core_resource_thread(user_agent: Cow<'static, str>,
};
channel_manager.start(public_setup_port,
private_setup_port);
- });
+ }).expect("Thread spawning failed");
(public_setup_chan, private_setup_chan)
}
@@ -343,7 +343,7 @@ impl CoreResourceManager {
let ua = self.user_agent.clone();
let dc = self.devtools_chan.clone();
let filemanager = self.filemanager.clone();
- spawn_named(format!("fetch thread for {}", init.url), move || {
+ thread::Builder::new().name(format!("fetch thread for {}", init.url)).spawn(move || {
let request = Request::from_init(init);
// XXXManishearth: Check origin against pipeline id (also ensure that the mode is allowed)
// todo load context / mimesniff in fetch
@@ -357,7 +357,7 @@ impl CoreResourceManager {
filemanager: filemanager,
};
fetch(Rc::new(request), &mut target, &context);
- })
+ }).expect("Thread spawning failed");
}
fn websocket_connect(&self,
diff --git a/components/net/storage_thread.rs b/components/net/storage_thread.rs
index cdf70aa6b3b..88726d5702b 100644
--- a/components/net/storage_thread.rs
+++ b/components/net/storage_thread.rs
@@ -10,7 +10,7 @@ use std::borrow::ToOwned;
use std::collections::BTreeMap;
use std::collections::HashMap;
use std::path::PathBuf;
-use util::thread::spawn_named;
+use std::thread;
const QUOTA_SIZE_LIMIT: usize = 5 * 1024 * 1024;
@@ -22,9 +22,9 @@ impl StorageThreadFactory for IpcSender<StorageThreadMsg> {
/// Create a storage thread
fn new(config_dir: Option<PathBuf>) -> IpcSender<StorageThreadMsg> {
let (chan, port) = ipc::channel().unwrap();
- spawn_named("StorageManager".to_owned(), move || {
+ thread::Builder::new().name("StorageManager".to_owned()).spawn(move || {
StorageManager::new(port, config_dir).start();
- });
+ }).expect("Thread spawning failed");
chan
}
}
diff --git a/components/net/websocket_loader.rs b/components/net/websocket_loader.rs
index c9b67dc7f0f..d0ce7d61836 100644
--- a/components/net/websocket_loader.rs
+++ b/components/net/websocket_loader.rs
@@ -14,7 +14,6 @@ use std::ascii::AsciiExt;
use std::sync::{Arc, Mutex, RwLock};
use std::sync::atomic::{AtomicBool, Ordering};
use std::thread;
-use util::thread::spawn_named;
use websocket::{Client, Message};
use websocket::header::{Headers, Origin, WebSocketProtocol};
use websocket::message::Type;
@@ -64,7 +63,7 @@ fn establish_a_websocket_connection(resource_url: &ServoUrl, net_url: (Host, Str
}
pub fn init(connect: WebSocketCommunicate, connect_data: WebSocketConnectData, cookie_jar: Arc<RwLock<CookieStorage>>) {
- spawn_named(format!("WebSocket connection to {}", connect_data.resource_url), move || {
+ thread::Builder::new().name(format!("WebSocket connection to {}", connect_data.resource_url)).spawn(move || {
// Step 8: Protocols.
// Step 9.
@@ -162,5 +161,5 @@ pub fn init(connect: WebSocketCommunicate, connect_data: WebSocketConnectData, c
}
}
});
- });
+ }).expect("Thread spawning failed");
}
diff --git a/components/net_traits/Cargo.toml b/components/net_traits/Cargo.toml
index 71cd286f863..6b7e117ebba 100644
--- a/components/net_traits/Cargo.toml
+++ b/components/net_traits/Cargo.toml
@@ -11,7 +11,6 @@ path = "lib.rs"
[dependencies]
bluetooth_traits = {path = "../bluetooth_traits"}
-util = {path = "../util"}
msg = {path = "../msg"}
ipc-channel = "0.5"
heapsize = "0.3.0"
@@ -24,6 +23,7 @@ log = "0.3.5"
num-traits = "0.1.32"
serde = "0.8"
serde_derive = "0.8"
+servo_config = {path = "../config", features = ["servo"]}
servo_url = {path = "../url", features = ["servo"]}
url = {version = "1.2", features = ["heap_size"]}
websocket = "0.17"
diff --git a/components/net_traits/lib.rs b/components/net_traits/lib.rs
index b17a33fd421..2c4dd459e20 100644
--- a/components/net_traits/lib.rs
+++ b/components/net_traits/lib.rs
@@ -27,9 +27,9 @@ extern crate num_traits;
extern crate serde;
#[macro_use]
extern crate serde_derive;
+extern crate servo_config;
extern crate servo_url;
extern crate url;
-extern crate util;
extern crate uuid;
extern crate webrender_traits;
extern crate websocket;
diff --git a/components/net_traits/pub_domains.rs b/components/net_traits/pub_domains.rs
index f40815e100e..8e8864ee6aa 100644
--- a/components/net_traits/pub_domains.rs
+++ b/components/net_traits/pub_domains.rs
@@ -14,10 +14,10 @@
//! we don't need to make the code more complex for it. The `mach` update command makes sure that
//! those cases are not present.
+use servo_config::resource_files::read_resource_file;
use std::collections::HashSet;
use std::iter::FromIterator;
use std::str::from_utf8;
-use util::resource_files::read_resource_file;
#[derive(Clone,Debug)]
pub struct PubDomainRules {
diff --git a/components/profile/Cargo.toml b/components/profile/Cargo.toml
index f542c5a3f03..7ca08bccd6a 100644
--- a/components/profile/Cargo.toml
+++ b/components/profile/Cargo.toml
@@ -12,13 +12,13 @@ path = "lib.rs"
[dependencies]
profile_traits = {path = "../profile_traits"}
plugins = {path = "../plugins"}
-util = {path = "../util", features = ["servo"]}
ipc-channel = "0.5"
heartbeats-simple = "0.3"
log = "0.3.5"
serde = "0.8"
serde_derive = "0.8"
serde_json = "0.8"
+servo_config = {path = "../config", features = ["servo"]}
time = "0.1.12"
[target.'cfg(target_os = "macos")'.dependencies]
diff --git a/components/profile/heartbeats.rs b/components/profile/heartbeats.rs
index 7579e6f3a39..b05cbf74b71 100644
--- a/components/profile/heartbeats.rs
+++ b/components/profile/heartbeats.rs
@@ -6,13 +6,13 @@
use heartbeats_simple::HeartbeatPow as Heartbeat;
use heartbeats_simple::HeartbeatPowContext as HeartbeatContext;
use profile_traits::time::ProfilerCategory;
+use servo_config::opts;
use std::collections::HashMap;
use std::env::var_os;
use std::error::Error;
use std::fs::File;
use std::mem;
use std::path::Path;
-use util::opts;
static mut HBS: Option<*mut HashMap<ProfilerCategory, Heartbeat>> = None;
diff --git a/components/profile/lib.rs b/components/profile/lib.rs
index 5e1c4804dc9..df5e6706024 100644
--- a/components/profile/lib.rs
+++ b/components/profile/lib.rs
@@ -27,10 +27,10 @@ extern crate serde;
#[macro_use]
extern crate serde_derive;
extern crate serde_json;
+extern crate servo_config;
#[cfg(target_os = "macos")]
extern crate task_info;
extern crate time as std_time;
-extern crate util;
#[allow(unsafe_code)]
mod heartbeats;
diff --git a/components/profile/mem.rs b/components/profile/mem.rs
index b27ceeb898f..002cd4d1cb7 100644
--- a/components/profile/mem.rs
+++ b/components/profile/mem.rs
@@ -13,7 +13,6 @@ use std::cmp::Ordering;
use std::collections::HashMap;
use std::thread;
use time::duration_from_seconds;
-use util::thread::spawn_named;
pub struct Profiler {
/// The port through which messages are received.
@@ -33,22 +32,22 @@ impl Profiler {
// Create the timer thread if a period was provided.
if let Some(period) = period {
let chan = chan.clone();
- spawn_named("Memory profiler timer".to_owned(), move || {
+ thread::Builder::new().name("Memory profiler timer".to_owned()).spawn(move || {
loop {
thread::sleep(duration_from_seconds(period));
if chan.send(ProfilerMsg::Print).is_err() {
break;
}
}
- });
+ }).expect("Thread spawning failed");
}
// Always spawn the memory profiler. If there is no timer thread it won't receive regular
// `Print` events, but it will still receive the other events.
- spawn_named("Memory profiler".to_owned(), move || {
+ thread::Builder::new().name("Memory profiler".to_owned()).spawn(move || {
let mut mem_profiler = Profiler::new(port);
mem_profiler.start();
- });
+ }).expect("Thread spawning failed");
let mem_profiler_chan = ProfilerChan(chan);
diff --git a/components/profile/time.rs b/components/profile/time.rs
index 648c31f83d6..8cb7c9502c3 100644
--- a/components/profile/time.rs
+++ b/components/profile/time.rs
@@ -9,6 +9,7 @@ use ipc_channel::ipc::{self, IpcReceiver};
use profile_traits::energy::{energy_interval_ms, read_energy_uj};
use profile_traits::time::{ProfilerCategory, ProfilerChan, ProfilerMsg, TimerMetadata};
use profile_traits::time::{TimerMetadataFrameType, TimerMetadataReflowType};
+use servo_config::opts::OutputOptions;
use std::{f64, thread, u32, u64};
use std::borrow::ToOwned;
use std::cmp::Ordering;
@@ -22,8 +23,6 @@ use std::path::Path;
use std::time::Duration;
use std_time::precise_time_ns;
use trace_dump::TraceDump;
-use util::opts::OutputOptions;
-use util::thread::spawn_named;
pub trait Formattable {
fn format(&self, output: &Option<OutputOptions>) -> String;
@@ -176,28 +175,28 @@ impl Profiler {
Some(ref option) => {
// Spawn the time profiler thread
let outputoption = option.clone();
- spawn_named("Time profiler".to_owned(), move || {
+ thread::Builder::new().name("Time profiler".to_owned()).spawn(move || {
let trace = file_path.as_ref()
.map(path::Path::new)
.map(fs::File::create)
.map(|res| TraceDump::new(res.unwrap()));
let mut profiler = Profiler::new(port, trace, Some(outputoption));
profiler.start();
- });
+ }).expect("Thread spawning failed");
// decide if we need to spawn the timer thread
match option {
&OutputOptions::FileName(_) => { /* no timer thread needed */ },
&OutputOptions::Stdout(period) => {
// Spawn a timer thread
let chan = chan.clone();
- spawn_named("Time profiler timer".to_owned(), move || {
+ thread::Builder::new().name("Time profiler timer".to_owned()).spawn(move || {
loop {
thread::sleep(duration_from_seconds(period));
if chan.send(ProfilerMsg::Print).is_err() {
break;
}
}
- });
+ }).expect("Thread spawning failed");
},
}
},
@@ -205,17 +204,17 @@ impl Profiler {
// this is when the -p option hasn't been specified
if file_path.is_some() {
// Spawn the time profiler
- spawn_named("Time profiler".to_owned(), move || {
+ thread::Builder::new().name("Time profiler".to_owned()).spawn(move || {
let trace = file_path.as_ref()
.map(path::Path::new)
.map(fs::File::create)
.map(|res| TraceDump::new(res.unwrap()));
let mut profiler = Profiler::new(port, trace, None);
profiler.start();
- });
+ }).expect("Thread spawning failed");
} else {
// No-op to handle messages when the time profiler is not printing:
- spawn_named("Time profiler".to_owned(), move || {
+ thread::Builder::new().name("Time profiler".to_owned()).spawn(move || {
loop {
match port.recv() {
Err(_) => break,
@@ -226,7 +225,7 @@ impl Profiler {
_ => {}
}
}
- });
+ }).expect("Thread spawning failed");
}
}
}
@@ -247,7 +246,7 @@ impl Profiler {
const MAX_ENERGY_INTERVAL_MS: u32 = 1000;
let interval_ms = enforce_range(MIN_ENERGY_INTERVAL_MS, MAX_ENERGY_INTERVAL_MS, energy_interval_ms());
let loop_count: u32 = (interval_ms as f32 / SLEEP_MS as f32).ceil() as u32;
- spawn_named("Application heartbeat profiler".to_owned(), move || {
+ thread::Builder::new().name("Application heartbeat profiler".to_owned()).spawn(move || {
let mut start_time = precise_time_ns();
let mut start_energy = read_energy_uj();
loop {
@@ -272,7 +271,7 @@ impl Profiler {
start_time = end_time;
start_energy = end_energy;
}
- });
+ }).expect("Thread spawning failed");
}
profiler_chan
diff --git a/components/profile_traits/Cargo.toml b/components/profile_traits/Cargo.toml
index bf765fa45f2..954fb2907a1 100644
--- a/components/profile_traits/Cargo.toml
+++ b/components/profile_traits/Cargo.toml
@@ -20,7 +20,7 @@ log = "0.3.5"
plugins = {path = "../plugins"}
serde = "0.8"
serde_derive = "0.8"
+servo_config = {path = "../config"}
signpost = {git = "https://github.com/pcwalton/signpost.git"}
time = "0.1.12"
-util = {path = "../util"}
diff --git a/components/profile_traits/lib.rs b/components/profile_traits/lib.rs
index 7f67575f6cb..ab53e33c4de 100644
--- a/components/profile_traits/lib.rs
+++ b/components/profile_traits/lib.rs
@@ -18,8 +18,8 @@ extern crate log;
extern crate serde;
#[macro_use]
extern crate serde_derive;
+extern crate servo_config;
extern crate signpost;
-extern crate util;
#[allow(unsafe_code)]
pub mod energy;
diff --git a/components/profile_traits/time.rs b/components/profile_traits/time.rs
index ae114f98bc0..f7b62e17139 100644
--- a/components/profile_traits/time.rs
+++ b/components/profile_traits/time.rs
@@ -7,8 +7,8 @@ extern crate time as std_time;
use energy::read_energy_uj;
use ipc_channel::ipc::IpcSender;
use self::std_time::precise_time_ns;
+use servo_config::opts;
use signpost;
-use util::opts;
#[derive(PartialEq, Clone, PartialOrd, Eq, Ord, Debug, Deserialize, Serialize)]
pub struct TimerMetadata {
diff --git a/components/remutex/Cargo.toml b/components/remutex/Cargo.toml
new file mode 100644
index 00000000000..8bb165d40df
--- /dev/null
+++ b/components/remutex/Cargo.toml
@@ -0,0 +1,14 @@
+[package]
+name = "servo_remutex"
+version = "0.0.1"
+authors = ["The Servo Project Developers"]
+license = "MPL-2.0"
+publish = false
+
+[lib]
+name = "servo_remutex"
+path = "lib.rs"
+
+[dependencies]
+lazy_static = "0.2"
+log = "0.3.5"
diff --git a/components/util/remutex.rs b/components/remutex/lib.rs
index a574de9cfb3..b2ea30d11a4 100644
--- a/components/util/remutex.rs
+++ b/components/remutex/lib.rs
@@ -10,6 +10,12 @@
//! It provides the same interface as https://github.com/rust-lang/rust/blob/master/src/libstd/sys/common/remutex.rs
//! so if those types are ever exported, we should be able to replace this implemtation.
+#![feature(nonzero)]
+
+extern crate core;
+#[macro_use] extern crate lazy_static;
+#[macro_use] extern crate log;
+
use core::nonzero::NonZero;
use std::cell::{Cell, UnsafeCell};
use std::ops::Deref;
diff --git a/components/script/Cargo.toml b/components/script/Cargo.toml
index 293c2aefe02..05af21f1dc1 100644
--- a/components/script/Cargo.toml
+++ b/components/script/Cargo.toml
@@ -70,13 +70,14 @@ script_traits = {path = "../script_traits"}
selectors = "0.15"
serde = "0.8"
servo_atoms = {path = "../atoms"}
+servo_config = {path = "../config", features = ["servo"] }
+servo_geometry = {path = "../geometry" }
servo_url = {path = "../url", features = ["servo"] }
smallvec = "0.1"
style = {path = "../style"}
style_traits = {path = "../style_traits"}
time = "0.1.12"
url = {version = "1.2", features = ["heap_size", "query_encoding"]}
-util = {path = "../util"}
uuid = {version = "0.3.1", features = ["v4"]}
websocket = "0.17"
xml5ever = {version = "0.2", features = ["unstable"]}
diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py
index dc39048ab40..6329a81048f 100644
--- a/components/script/dom/bindings/codegen/CodegenRust.py
+++ b/components/script/dom/bindings/codegen/CodegenRust.py
@@ -5603,7 +5603,7 @@ def generate_imports(config, cgthings, descriptors, callbacks=None, dictionaries
'dom::globalscope::GlobalScope',
'mem::heap_size_of_raw_self_and_children',
'libc',
- 'util::prefs::PREFS',
+ 'servo_config::prefs::PREFS',
'std::borrow::ToOwned',
'std::cmp',
'std::mem',
diff --git a/components/script/dom/bindings/conversions.rs b/components/script/dom/bindings/conversions.rs
index adfe242b5f8..18a2deb8f0f 100644
--- a/components/script/dom/bindings/conversions.rs
+++ b/components/script/dom/bindings/conversions.rs
@@ -56,8 +56,8 @@ use js::jsval::{ObjectValue, StringValue};
use js::rust::{ToString, get_object_class, is_dom_class, is_dom_object, maybe_wrap_value};
use libc;
use num_traits::Float;
+use servo_config::opts;
use std::{char, mem, ptr, slice};
-use util::opts;
/// A trait to check whether a given `JSObject` implements an IDL interface.
pub trait IDLInterface {
diff --git a/components/script/dom/bindings/guard.rs b/components/script/dom/bindings/guard.rs
index 114045a62e8..25a52fbe84c 100644
--- a/components/script/dom/bindings/guard.rs
+++ b/components/script/dom/bindings/guard.rs
@@ -5,7 +5,7 @@
//! Machinery to conditionally expose things.
use js::jsapi::{HandleObject, JSContext};
-use util::prefs::PREFS;
+use servo_config::prefs::PREFS;
/// A container with a condition.
pub struct Guard<T: Clone + Copy> {
diff --git a/components/script/dom/characterdata.rs b/components/script/dom/characterdata.rs
index 01f11e3ac50..a2c456317dc 100644
--- a/components/script/dom/characterdata.rs
+++ b/components/script/dom/characterdata.rs
@@ -19,8 +19,8 @@ use dom::element::Element;
use dom::node::{Node, NodeDamage};
use dom::processinginstruction::ProcessingInstruction;
use dom::text::Text;
+use servo_config::opts;
use std::cell::Ref;
-use util::opts;
// https://dom.spec.whatwg.org/#characterdata
#[dom_struct]
diff --git a/components/script/dom/create.rs b/components/script/dom/create.rs
index 42a3c8158a1..cb591e74c55 100644
--- a/components/script/dom/create.rs
+++ b/components/script/dom/create.rs
@@ -78,7 +78,7 @@ use dom::htmlunknownelement::HTMLUnknownElement;
use dom::htmlvideoelement::HTMLVideoElement;
use dom::svgsvgelement::SVGSVGElement;
use html5ever_atoms::{Prefix, QualName};
-use util::prefs::PREFS;
+use servo_config::prefs::PREFS;
fn create_svg_element(name: QualName,
prefix: Option<DOMString>,
diff --git a/components/script/dom/dedicatedworkerglobalscope.rs b/components/script/dom/dedicatedworkerglobalscope.rs
index 96ee1f871eb..911847aadb8 100644
--- a/components/script/dom/dedicatedworkerglobalscope.rs
+++ b/components/script/dom/dedicatedworkerglobalscope.rs
@@ -38,8 +38,8 @@ use std::mem::replace;
use std::sync::{Arc, Mutex};
use std::sync::atomic::AtomicBool;
use std::sync::mpsc::{Receiver, RecvError, Select, Sender, channel};
+use std::thread;
use style::thread_state;
-use util::thread::spawn_named;
/// Set the `worker` field of a related DedicatedWorkerGlobalScope object to a particular
/// value for the duration of this object's lifetime. This ensures that the related Worker
@@ -160,7 +160,7 @@ impl DedicatedWorkerGlobalScope {
let name = format!("WebWorker for {}", serialized_worker_url);
let top_level_frame_id = FrameId::installed();
- spawn_named(name, move || {
+ thread::Builder::new().name(name).spawn(move || {
thread_state::initialize(thread_state::SCRIPT | thread_state::IN_WORKER);
if let Some(top_level_frame_id) = top_level_frame_id {
@@ -243,7 +243,7 @@ impl DedicatedWorkerGlobalScope {
global.handle_event(event);
}
}, reporter_name, parent_sender, CommonScriptMsg::CollectReports);
- });
+ }).expect("Thread spawning failed");
}
pub fn script_chan(&self) -> Box<ScriptChan + Send> {
diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs
index 8957fcf5ab9..5f5ed341b8f 100644
--- a/components/script/dom/document.rs
+++ b/components/script/dom/document.rs
@@ -113,6 +113,7 @@ use script_traits::{ScriptMsg as ConstellationMsg, TouchpadPressurePhase};
use script_traits::{TouchEventType, TouchId};
use script_traits::UntrustedNodeAddress;
use servo_atoms::Atom;
+use servo_config::prefs::PREFS;
use servo_url::ServoUrl;
use std::ascii::AsciiExt;
use std::borrow::ToOwned;
@@ -133,7 +134,6 @@ use style::str::{split_html_space_chars, str_join};
use style::stylesheets::Stylesheet;
use time;
use url::percent_encoding::percent_decode;
-use util::prefs::PREFS;
pub enum TouchEventResult {
Processed(bool),
diff --git a/components/script/dom/filereader.rs b/components/script/dom/filereader.rs
index 4227e84d6c0..9b5c39b013c 100644
--- a/components/script/dom/filereader.rs
+++ b/components/script/dom/filereader.rs
@@ -34,9 +34,9 @@ use servo_atoms::Atom;
use std::cell::Cell;
use std::ptr;
use std::sync::Arc;
+use std::thread;
use task_source::TaskSource;
use task_source::file_reading::{FileReadingTaskSource, FileReadingRunnable, FileReadingTask};
-use util::thread::spawn_named;
#[derive(PartialEq, Clone, Copy, JSTraceable, HeapSizeOf)]
pub enum FileReaderFunction {
@@ -401,9 +401,10 @@ impl FileReader {
let wrapper = global.get_runnable_wrapper();
let task_source = global.file_reading_task_source();
- spawn_named("file reader async operation".to_owned(), move || {
+ thread::Builder::new().name("file reader async operation".to_owned()).spawn(move || {
perform_annotated_read_operation(gen_id, load_data, blob_contents, fr, task_source, wrapper)
- });
+ }).expect("Thread spawning failed");
+
Ok(())
}
diff --git a/components/script/dom/htmlanchorelement.rs b/components/script/dom/htmlanchorelement.rs
index b86cd60b8fc..52c355f2bab 100644
--- a/components/script/dom/htmlanchorelement.rs
+++ b/components/script/dom/htmlanchorelement.rs
@@ -28,10 +28,10 @@ use html5ever_atoms::LocalName;
use net_traits::ReferrerPolicy;
use num_traits::ToPrimitive;
use script_traits::MozBrowserEvent;
+use servo_config::prefs::PREFS;
use servo_url::ServoUrl;
use std::default::Default;
use style::attr::AttrValue;
-use util::prefs::PREFS;
#[dom_struct]
pub struct HTMLAnchorElement {
diff --git a/components/script/dom/htmliframeelement.rs b/components/script/dom/htmliframeelement.rs
index 3f3ea8aa52a..53c7e34f94f 100644
--- a/components/script/dom/htmliframeelement.rs
+++ b/components/script/dom/htmliframeelement.rs
@@ -48,13 +48,13 @@ use script_traits::{IFrameLoadInfo, IFrameLoadInfoWithData, LoadData};
use script_traits::{MozBrowserEvent, NewLayoutInfo, ScriptMsg as ConstellationMsg};
use script_traits::IFrameSandboxState::{IFrameSandboxed, IFrameUnsandboxed};
use servo_atoms::Atom;
+use servo_config::prefs::PREFS;
+use servo_config::servo_version;
use servo_url::ServoUrl;
use std::cell::Cell;
use style::attr::{AttrValue, LengthOrPercentageOrAuto};
use style::context::ReflowGoal;
use task_source::TaskSource;
-use util::prefs::PREFS;
-use util::servo_version;
bitflags! {
#[derive(JSTraceable, HeapSizeOf)]
diff --git a/components/script/dom/htmlmetaelement.rs b/components/script/dom/htmlmetaelement.rs
index e86f2c4a25a..cf9d078e39f 100644
--- a/components/script/dom/htmlmetaelement.rs
+++ b/components/script/dom/htmlmetaelement.rs
@@ -19,6 +19,7 @@ use dom::node::{Node, UnbindContext, document_from_node, window_from_node};
use dom::virtualmethods::VirtualMethods;
use html5ever_atoms::LocalName;
use parking_lot::RwLock;
+use servo_config::prefs::PREFS;
use std::ascii::AsciiExt;
use std::sync::Arc;
use std::sync::atomic::AtomicBool;
@@ -89,7 +90,7 @@ impl HTMLMetaElement {
}
fn apply_viewport(&self) {
- if !::util::prefs::PREFS.get("layout.viewport.enabled").as_boolean().unwrap_or(false) {
+ if !PREFS.get("layout.viewport.enabled").as_boolean().unwrap_or(false) {
return;
}
let element = self.upcast::<Element>();
diff --git a/components/script/dom/mouseevent.rs b/components/script/dom/mouseevent.rs
index 9a01fcf1fde..3b0e3fb1710 100644
--- a/components/script/dom/mouseevent.rs
+++ b/components/script/dom/mouseevent.rs
@@ -14,9 +14,9 @@ use dom::event::{Event, EventBubbles, EventCancelable};
use dom::eventtarget::EventTarget;
use dom::uievent::UIEvent;
use dom::window::Window;
+use servo_config::prefs::PREFS;
use std::cell::Cell;
use std::default::Default;
-use util::prefs::PREFS;
#[dom_struct]
pub struct MouseEvent {
diff --git a/components/script/dom/navigatorinfo.rs b/components/script/dom/navigatorinfo.rs
index 54200e7be20..f0b331c49e6 100644
--- a/components/script/dom/navigatorinfo.rs
+++ b/components/script/dom/navigatorinfo.rs
@@ -3,7 +3,7 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use dom::bindings::str::DOMString;
-use util::opts;
+use servo_config::opts;
pub fn Product() -> DOMString {
DOMString::from("Gecko")
diff --git a/components/script/dom/serviceworkerglobalscope.rs b/components/script/dom/serviceworkerglobalscope.rs
index 4daf07fff20..8dd3da01671 100644
--- a/components/script/dom/serviceworkerglobalscope.rs
+++ b/components/script/dom/serviceworkerglobalscope.rs
@@ -28,13 +28,12 @@ use net_traits::request::{CredentialsMode, Destination, RequestInit, Type as Req
use rand::random;
use script_runtime::{CommonScriptMsg, StackRootTLS, get_reports, new_rt_and_cx, ScriptChan};
use script_traits::{TimerEvent, WorkerGlobalScopeInit, ScopeThings, ServiceWorkerMsg, WorkerScriptLoadOrigin};
+use servo_config::prefs::PREFS;
use servo_url::ServoUrl;
use std::sync::mpsc::{Receiver, RecvError, Select, Sender, channel};
use std::thread;
use std::time::Duration;
use style::thread_state::{self, IN_WORKER, SCRIPT};
-use util::prefs::PREFS;
-use util::thread::spawn_named;
/// Messages used to control service worker event loop
pub enum ServiceWorkerScriptMsg {
@@ -151,7 +150,7 @@ impl ServiceWorkerGlobalScope {
.. } = scope_things;
let serialized_worker_url = script_url.to_string();
- spawn_named(format!("ServiceWorker for {}", serialized_worker_url), move || {
+ thread::Builder::new().name(format!("ServiceWorker for {}", serialized_worker_url)).spawn(move || {
thread_state::initialize(SCRIPT | IN_WORKER);
let roots = RootCollection::new();
let _stack_roots_tls = StackRootTLS::new(&roots);
@@ -202,11 +201,11 @@ impl ServiceWorkerGlobalScope {
scope.execute_script(DOMString::from(source));
// Service workers are time limited
- spawn_named("SWTimeoutThread".to_owned(), move || {
+ thread::Builder::new().name("SWTimeoutThread".to_owned()).spawn(move || {
let sw_lifetime_timeout = PREFS.get("dom.serviceworker.timeout_seconds").as_u64().unwrap();
thread::sleep(Duration::new(sw_lifetime_timeout, 0));
let _ = timer_chan.send(());
- });
+ }).expect("Thread spawning failed");
global.dispatch_activate();
let reporter_name = format!("service-worker-reporter-{}", random::<u64>());
@@ -217,7 +216,7 @@ impl ServiceWorkerGlobalScope {
}
}
}, reporter_name, scope.script_chan(), CommonScriptMsg::CollectReports);
- });
+ }).expect("Thread spawning failed");
}
fn handle_event(&self, event: MixedMessage) -> bool {
diff --git a/components/script/dom/servoparser/mod.rs b/components/script/dom/servoparser/mod.rs
index c6f4364925b..2f4f485be12 100644
--- a/components/script/dom/servoparser/mod.rs
+++ b/components/script/dom/servoparser/mod.rs
@@ -32,10 +32,10 @@ use network_listener::PreInvoke;
use profile_traits::time::{TimerMetadata, TimerMetadataFrameType};
use profile_traits::time::{TimerMetadataReflowType, ProfilerCategory, profile};
use script_thread::ScriptThread;
+use servo_config::resource_files::read_resource_file;
use servo_url::ServoUrl;
use std::cell::Cell;
use std::mem;
-use util::resource_files::read_resource_file;
mod html;
mod xml;
diff --git a/components/script/dom/testbinding.rs b/components/script/dom/testbinding.rs
index 6b0c619749a..9f65d04bbfa 100644
--- a/components/script/dom/testbinding.rs
+++ b/components/script/dom/testbinding.rs
@@ -37,11 +37,11 @@ use js::jsapi::{HandleObject, HandleValue, JSContext, JSObject, JSAutoCompartmen
use js::jsapi::{JS_NewPlainObject, JS_NewUint8ClampedArray};
use js::jsval::{JSVal, NullValue};
use script_traits::MsDuration;
+use servo_config::prefs::PREFS;
use std::borrow::ToOwned;
use std::ptr;
use std::rc::Rc;
use timers::OneshotTimerCallback;
-use util::prefs::PREFS;
#[dom_struct]
pub struct TestBinding {
diff --git a/components/script/dom/userscripts.rs b/components/script/dom/userscripts.rs
index a4051f44581..66758afaa98 100644
--- a/components/script/dom/userscripts.rs
+++ b/components/script/dom/userscripts.rs
@@ -9,11 +9,11 @@ use dom::bindings::js::RootedReference;
use dom::bindings::str::DOMString;
use dom::htmlheadelement::HTMLHeadElement;
use dom::node::Node;
+use servo_config::opts;
+use servo_config::resource_files::resources_dir_path;
use std::borrow::ToOwned;
use std::fs::read_dir;
use std::path::PathBuf;
-use util::opts;
-use util::resource_files::resources_dir_path;
pub fn load_script(head: &HTMLHeadElement) {
diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs
index 3cd48b46590..acd213d4c81 100644
--- a/components/script/dom/window.rs
+++ b/components/script/dom/window.rs
@@ -77,6 +77,9 @@ use script_traits::{DocumentState, TimerEvent, TimerEventId};
use script_traits::{ScriptMsg as ConstellationMsg, TimerEventRequest, WindowSizeData, WindowSizeType};
use script_traits::webdriver_msg::{WebDriverJSError, WebDriverJSResult};
use servo_atoms::Atom;
+use servo_config::opts;
+use servo_config::prefs::PREFS;
+use servo_geometry::{f32_rect_to_au_rect, max_rect};
use servo_url::ServoUrl;
use std::ascii::AsciiExt;
use std::borrow::ToOwned;
@@ -106,9 +109,6 @@ use timers::{IsInterval, TimerCallback};
#[cfg(any(target_os = "macos", target_os = "linux", target_os = "windows"))]
use tinyfiledialogs::{self, MessageBoxIcon};
use url::Position;
-use util::geometry::{self, max_rect};
-use util::opts;
-use util::prefs::PREFS;
use webdriver_handlers::jsval_to_webdriver;
/// Current state of the window object
@@ -1413,13 +1413,13 @@ impl Window {
}
pub fn set_page_clip_rect_with_new_viewport(&self, viewport: Rect<f32>) -> bool {
- let rect = geometry::f32_rect_to_au_rect(viewport.clone());
+ let rect = f32_rect_to_au_rect(viewport.clone());
self.current_viewport.set(rect);
// We use a clipping rectangle that is five times the size of the of the viewport,
// so that we don't collect display list items for areas too far outside the viewport,
// but also don't trigger reflows every time the viewport changes.
static VIEWPORT_EXPANSION: f32 = 2.0; // 2 lengths on each side plus original length is 5 total.
- let proposed_clip_rect = geometry::f32_rect_to_au_rect(
+ let proposed_clip_rect = f32_rect_to_au_rect(
viewport.inflate(viewport.size.width * VIEWPORT_EXPANSION,
viewport.size.height * VIEWPORT_EXPANSION));
let clip_rect = self.page_clip_rect.get();
diff --git a/components/script/dom/xmlhttprequest.rs b/components/script/dom/xmlhttprequest.rs
index 578c8b7b822..f676eac3b64 100644
--- a/components/script/dom/xmlhttprequest.rs
+++ b/components/script/dom/xmlhttprequest.rs
@@ -53,6 +53,7 @@ use net_traits::request::{CredentialsMode, Destination, RequestInit, RequestMode
use net_traits::trim_http_whitespace;
use network_listener::{NetworkListener, PreInvoke};
use servo_atoms::Atom;
+use servo_config::prefs::PREFS;
use servo_url::ServoUrl;
use std::ascii::AsciiExt;
use std::borrow::ToOwned;
@@ -64,7 +65,6 @@ use task_source::networking::NetworkingTaskSource;
use time;
use timers::{OneshotTimerCallback, OneshotTimerHandle};
use url::Position;
-use util::prefs::PREFS;
#[derive(JSTraceable, PartialEq, Copy, Clone, HeapSizeOf)]
enum XMLHttpRequestState {
diff --git a/components/script/lib.rs b/components/script/lib.rs
index e80e9553956..1a751635ea5 100644
--- a/components/script/lib.rs
+++ b/components/script/lib.rs
@@ -83,6 +83,8 @@ extern crate script_traits;
extern crate selectors;
extern crate serde;
#[macro_use] extern crate servo_atoms;
+#[macro_use] extern crate servo_config;
+extern crate servo_geometry;
extern crate servo_url;
extern crate smallvec;
#[macro_use]
@@ -93,7 +95,6 @@ extern crate time;
extern crate tinyfiledialogs;
extern crate url;
#[macro_use]
-extern crate util;
extern crate uuid;
extern crate webrender_traits;
extern crate websocket;
diff --git a/components/script/script_runtime.rs b/components/script/script_runtime.rs
index 00e7d3a198e..a21f96c5890 100644
--- a/components/script/script_runtime.rs
+++ b/components/script/script_runtime.rs
@@ -25,6 +25,8 @@ use js::rust::Runtime;
use msg::constellation_msg::PipelineId;
use profile_traits::mem::{Report, ReportKind, ReportsChan};
use script_thread::{Runnable, STACK_ROOTS, trace_thread};
+use servo_config::opts;
+use servo_config::prefs::PREFS;
use std::cell::Cell;
use std::io::{Write, stdout};
use std::marker::PhantomData;
@@ -35,8 +37,6 @@ use std::ptr;
use std::rc::Rc;
use style::thread_state;
use time::{Tm, now};
-use util::opts;
-use util::prefs::PREFS;
/// Common messages used to control the event loops in both the script and the worker
pub enum CommonScriptMsg {
diff --git a/components/script/script_thread.rs b/components/script/script_thread.rs
index 680bf2e8c9a..b719a8faed6 100644
--- a/components/script/script_thread.rs
+++ b/components/script/script_thread.rs
@@ -91,6 +91,7 @@ use script_traits::CompositorEvent::{KeyEvent, MouseButtonEvent, MouseMoveEvent,
use script_traits::CompositorEvent::{TouchEvent, TouchpadPressureEvent};
use script_traits::webdriver_msg::WebDriverScriptCommand;
use serviceworkerjob::{Job, JobQueue, AsyncJobHandler, FinishJobHandler, InvokeType, SettleType};
+use servo_config::opts;
use servo_url::ServoUrl;
use std::cell::Cell;
use std::collections::{hash_map, HashMap, HashSet};
@@ -101,6 +102,7 @@ use std::result::Result;
use std::sync::{Arc, Mutex};
use std::sync::atomic::{AtomicBool, Ordering};
use std::sync::mpsc::{Receiver, Select, Sender, channel};
+use std::thread;
use style::context::ReflowGoal;
use style::dom::{TNode, UnsafeNode};
use style::thread_state;
@@ -112,8 +114,6 @@ use task_source::networking::NetworkingTaskSource;
use task_source::user_interaction::{UserInteractionTask, UserInteractionTaskSource};
use time::Tm;
use url::Position;
-use util::opts;
-use util::thread;
use webdriver_handlers;
thread_local!(pub static STACK_ROOTS: Cell<Option<RootCollectionPtr>> = Cell::new(None));
@@ -519,8 +519,7 @@ impl ScriptThreadFactory for ScriptThread {
let (sender, receiver) = channel();
let layout_chan = sender.clone();
- thread::spawn_named(format!("ScriptThread {:?}", state.id),
- move || {
+ thread::Builder::new().name(format!("ScriptThread {:?}", state.id)).spawn(move || {
thread_state::initialize(thread_state::SCRIPT);
PipelineNamespace::install(state.pipeline_namespace_id);
FrameId::install(state.top_level_frame_id);
@@ -553,7 +552,7 @@ impl ScriptThreadFactory for ScriptThread {
// This must always be the very last operation performed before the thread completes
failsafe.neuter();
- });
+ }).expect("Thread spawning failed");
(sender, receiver)
}
diff --git a/components/script/serviceworker_manager.rs b/components/script/serviceworker_manager.rs
index ac3c2ab4109..793d7ccf370 100644
--- a/components/script/serviceworker_manager.rs
+++ b/components/script/serviceworker_manager.rs
@@ -16,11 +16,11 @@ use ipc_channel::ipc::{self, IpcSender};
use ipc_channel::router::ROUTER;
use net_traits::{CustomResponseMediator, CoreResourceMsg};
use script_traits::{ServiceWorkerMsg, ScopeThings, SWManagerMsg, SWManagerSenders, DOMMessage};
+use servo_config::prefs::PREFS;
use servo_url::ServoUrl;
use std::collections::HashMap;
use std::sync::mpsc::{channel, Sender, Receiver, RecvError};
-use util::prefs::PREFS;
-use util::thread::spawn_named;
+use std::thread;
enum Message {
FromResource(CustomResponseMediator),
@@ -60,11 +60,11 @@ impl ServiceWorkerManager {
let resource_port = ROUTER.route_ipc_receiver_to_new_mpsc_receiver(resource_port);
let _ = sw_senders.resource_sender.send(CoreResourceMsg::NetworkMediator(resource_chan));
let _ = sw_senders.swmanager_sender.send(SWManagerMsg::OwnSender(own_sender.clone()));
- spawn_named("ServiceWorkerManager".to_owned(), move || {
+ thread::Builder::new().name("ServiceWorkerManager".to_owned()).spawn(move || {
ServiceWorkerManager::new(own_sender,
from_constellation,
resource_port).handle_message();
- });
+ }).expect("Thread spawning failed");
}
pub fn get_matching_scope(&self, load_url: &ServoUrl) -> Option<ServoUrl> {
diff --git a/components/script/timers.rs b/components/script/timers.rs
index db0adfa9557..14c4eb89c13 100644
--- a/components/script/timers.rs
+++ b/components/script/timers.rs
@@ -18,12 +18,12 @@ use js::jsapi::{HandleValue, Heap};
use js::jsval::{JSVal, UndefinedValue};
use script_traits::{MsDuration, precise_time_ms};
use script_traits::{TimerEvent, TimerEventId, TimerEventRequest, TimerSource};
+use servo_config::prefs::PREFS;
use std::cell::Cell;
use std::cmp::{self, Ord, Ordering};
use std::collections::HashMap;
use std::default::Default;
use std::rc::Rc;
-use util::prefs::PREFS;
#[derive(JSTraceable, PartialEq, Eq, Copy, Clone, HeapSizeOf, Hash, PartialOrd, Ord, Debug)]
pub struct OneshotTimerHandle(i32);
diff --git a/components/servo/Cargo.toml b/components/servo/Cargo.toml
index 724ba36214b..759082970d7 100644
--- a/components/servo/Cargo.toml
+++ b/components/servo/Cargo.toml
@@ -50,10 +50,10 @@ profile_traits = {path = "../profile_traits"}
script = {path = "../script"}
script_layout_interface = {path = "../script_layout_interface"}
script_traits = {path = "../script_traits"}
+servo_config = {path = "../config"}
servo_url = {path = "../url"}
style = {path = "../style", features = ["servo"]}
url = "1.2"
-util = {path = "../util"}
webdriver_server = {path = "../webdriver_server", optional = true}
[dependencies.webrender]
diff --git a/components/servo/lib.rs b/components/servo/lib.rs
index 3cc549f102f..319bdbb186c 100644
--- a/components/servo/lib.rs
+++ b/components/servo/lib.rs
@@ -45,10 +45,9 @@ pub extern crate profile_traits;
pub extern crate script;
pub extern crate script_traits;
pub extern crate script_layout_interface;
+pub extern crate servo_config;
pub extern crate servo_url;
pub extern crate style;
-pub extern crate url;
-pub extern crate util;
#[cfg(feature = "webdriver")]
extern crate webdriver_server;
@@ -88,17 +87,19 @@ use profile::time as profile_time;
use profile_traits::mem;
use profile_traits::time;
use script_traits::{ConstellationMsg, SWManagerSenders, ScriptMsg};
+use servo_config::opts;
+use servo_config::prefs::PREFS;
+use servo_config::resource_files::resources_dir_path;
use servo_url::ServoUrl;
use std::borrow::Cow;
use std::cmp::max;
use std::path::PathBuf;
use std::rc::Rc;
use std::sync::mpsc::Sender;
-use util::opts;
-use util::prefs::PREFS;
-use util::resource_files::resources_dir_path;
pub use gleam::gl;
+pub use servo_config as config;
+pub use servo_url as url;
/// The in-process interface to Servo.
///
diff --git a/components/style/Cargo.toml b/components/style/Cargo.toml
index cb386d1ac7e..d2c9dbb32af 100644
--- a/components/style/Cargo.toml
+++ b/components/style/Cargo.toml
@@ -50,12 +50,12 @@ selectors = "0.15"
serde = {version = "0.8", optional = true}
serde_derive = {version = "0.8", optional = true}
servo_atoms = {path = "../atoms", optional = true}
+servo_config = {path = "../config"}
smallvec = "0.1"
style_traits = {path = "../style_traits"}
servo_url = {path = "../url"}
time = "0.1"
unicode-segmentation = "0.1.2"
-util = {path = "../util"}
plugins = {path = "../plugins", optional = true}
[dependencies.num_cpus]
diff --git a/components/style/lib.rs b/components/style/lib.rs
index 50725a52b00..d1b63f02c83 100644
--- a/components/style/lib.rs
+++ b/components/style/lib.rs
@@ -80,6 +80,7 @@ extern crate selectors;
extern crate serde;
#[cfg(feature = "servo")] #[macro_use] extern crate serde_derive;
#[cfg(feature = "servo")] #[macro_use] extern crate servo_atoms;
+extern crate servo_config;
extern crate servo_url;
extern crate smallvec;
#[macro_use]
@@ -87,7 +88,6 @@ extern crate style_traits;
extern crate time;
#[allow(unused_extern_crates)]
extern crate unicode_segmentation;
-extern crate util;
pub mod animation;
pub mod atomic_refcell;
diff --git a/components/style/matching.rs b/components/style/matching.rs
index fc79e075421..ce04d8fde0f 100644
--- a/components/style/matching.rs
+++ b/components/style/matching.rs
@@ -21,13 +21,13 @@ use selector_parser::{PseudoElement, RestyleDamage, SelectorImpl};
use selectors::MatchAttr;
use selectors::bloom::BloomFilter;
use selectors::matching::{AFFECTED_BY_PSEUDO_ELEMENTS, MatchingReason, StyleRelations};
+use servo_config::opts;
use sink::ForgetfulSink;
use std::collections::HashMap;
use std::hash::BuildHasherDefault;
use std::slice::IterMut;
use std::sync::Arc;
use stylist::ApplicableDeclarationBlock;
-use util::opts;
fn create_common_style_affecting_attributes_from_element<E: TElement>(element: &E)
-> CommonStyleAffectingAttributes {
diff --git a/components/style/parallel.rs b/components/style/parallel.rs
index 3bc888a5230..19b2af74b59 100644
--- a/components/style/parallel.rs
+++ b/components/style/parallel.rs
@@ -8,10 +8,10 @@
use dom::{OpaqueNode, TElement, TNode, UnsafeNode};
use rayon;
+use servo_config::opts;
use std::sync::atomic::Ordering;
use traversal::{DomTraversalContext, PerLevelTraversalData, PreTraverseToken};
use traversal::{STYLE_SHARING_CACHE_HITS, STYLE_SHARING_CACHE_MISSES};
-use util::opts;
pub const CHUNK_SIZE: usize = 64;
diff --git a/components/style/properties/properties.mako.rs b/components/style/properties/properties.mako.rs
index 21897405c88..59e02b9b9cf 100644
--- a/components/style/properties/properties.mako.rs
+++ b/components/style/properties/properties.mako.rs
@@ -28,6 +28,7 @@ use font_metrics::FontMetricsProvider;
#[cfg(feature = "servo")] use logical_geometry::{LogicalMargin, PhysicalSide};
use logical_geometry::WritingMode;
use parser::{Parse, ParserContext, ParserContextExtraData};
+#[cfg(feature = "servo")] use servo_config::prefs::PREFS;
use servo_url::ServoUrl;
use style_traits::ToCss;
use stylesheets::Origin;
@@ -846,7 +847,7 @@ impl PropertyDeclaration {
}
% endif
% if property.experimental and product == "servo":
- if !::util::prefs::PREFS.get("${property.experimental}")
+ if !PREFS.get("${property.experimental}")
.as_boolean().unwrap_or(false) {
return PropertyDeclarationParseResult::ExperimentalProperty
}
@@ -878,7 +879,7 @@ impl PropertyDeclaration {
}
% endif
% if shorthand.experimental and product == "servo":
- if !::util::prefs::PREFS.get("${shorthand.experimental}")
+ if !PREFS.get("${shorthand.experimental}")
.as_boolean().unwrap_or(false) {
return PropertyDeclarationParseResult::ExperimentalProperty
}
diff --git a/components/style/stylesheets.rs b/components/style/stylesheets.rs
index 1156b85731c..247c153c46b 100644
--- a/components/style/stylesheets.rs
+++ b/components/style/stylesheets.rs
@@ -18,6 +18,7 @@ use parser::{ParserContext, ParserContextExtraData, log_css_error};
use properties::{PropertyDeclarationBlock, parse_property_declaration_list};
use selector_parser::{SelectorImpl, SelectorParser};
use selectors::parser::SelectorList;
+use servo_config::prefs::PREFS;
use servo_url::ServoUrl;
use std::cell::Cell;
use std::fmt;
@@ -723,7 +724,7 @@ impl<'a, 'b> AtRuleParser for NestedRuleParser<'a, 'b> {
Ok(AtRuleType::WithBlock(AtRulePrelude::FontFace))
},
"viewport" => {
- if ::util::prefs::PREFS.get("layout.viewport.enabled").as_boolean().unwrap_or(false) ||
+ if PREFS.get("layout.viewport.enabled").as_boolean().unwrap_or(false) ||
cfg!(feature = "gecko") {
Ok(AtRuleType::WithBlock(AtRulePrelude::Viewport))
} else {
diff --git a/components/style/traversal.rs b/components/style/traversal.rs
index 5de8c726348..9ca232d759a 100644
--- a/components/style/traversal.rs
+++ b/components/style/traversal.rs
@@ -14,12 +14,12 @@ use restyle_hints::{RESTYLE_DESCENDANTS, RESTYLE_SELF};
use selector_parser::RestyleDamage;
use selectors::Element;
use selectors::matching::StyleRelations;
+use servo_config::opts;
use std::borrow::Borrow;
use std::cell::RefCell;
use std::mem;
use std::sync::atomic::{AtomicUsize, ATOMIC_USIZE_INIT, Ordering};
use stylist::Stylist;
-use util::opts;
/// Every time we do another layout, the old bloom filters are invalid. This is
/// detected by ticking a generation number every layout.
diff --git a/components/url/Cargo.toml b/components/url/Cargo.toml
index 48184fb702c..11c0cd71a8b 100644
--- a/components/url/Cargo.toml
+++ b/components/url/Cargo.toml
@@ -11,7 +11,7 @@ path = "lib.rs"
[features]
servo = ["heapsize", "heapsize_derive", "serde", "serde_derive",
- "url/heap_size"]
+ "url/heap_size", "url/serde"]
[dependencies]
diff --git a/components/util/thread.rs b/components/util/thread.rs
deleted file mode 100644
index 130187244db..00000000000
--- a/components/util/thread.rs
+++ /dev/null
@@ -1,11 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-use std::thread;
-
-pub fn spawn_named<F>(name: String, f: F)
- where F: FnOnce() + Send + 'static
-{
- thread::Builder::new().name(name).spawn(f).expect("Thread spawn failed");
-}
diff --git a/components/webdriver_server/Cargo.toml b/components/webdriver_server/Cargo.toml
index 6bb75d93b60..0cc3b43f637 100644
--- a/components/webdriver_server/Cargo.toml
+++ b/components/webdriver_server/Cargo.toml
@@ -22,8 +22,8 @@ plugins = {path = "../plugins"}
regex = "0.1.55"
rustc-serialize = "0.3.4"
script_traits = {path = "../script_traits"}
+servo_config = {path = "../config", features = ["servo"]}
servo_url = {path = "../url", features = ["servo"]}
url = {version = "1.2", features = ["heap_size"]}
-util = {path = "../util"}
uuid = { version = "0.3.1", features = ["v4"] }
webdriver = "0.15"
diff --git a/components/webdriver_server/lib.rs b/components/webdriver_server/lib.rs
index e6cf2ac6f62..9994f0b751e 100644
--- a/components/webdriver_server/lib.rs
+++ b/components/webdriver_server/lib.rs
@@ -22,8 +22,8 @@ extern crate net_traits;
extern crate regex;
extern crate rustc_serialize;
extern crate script_traits;
+extern crate servo_config;
extern crate servo_url;
-extern crate util;
extern crate uuid;
extern crate webdriver;
@@ -42,6 +42,7 @@ use rustc_serialize::json::{Json, ToJson};
use script_traits::{ConstellationMsg, LoadData, WebDriverCommandMsg};
use script_traits::webdriver_msg::{LoadStatus, WebDriverCookieError, WebDriverFrameId};
use script_traits::webdriver_msg::{WebDriverJSError, WebDriverJSResult, WebDriverScriptCommand};
+use servo_config::prefs::{PREFS, PrefValue};
use servo_url::ServoUrl;
use std::borrow::ToOwned;
use std::collections::BTreeMap;
@@ -49,8 +50,6 @@ use std::net::{SocketAddr, SocketAddrV4};
use std::sync::mpsc::Sender;
use std::thread;
use std::time::Duration;
-use util::prefs::{PREFS, PrefValue};
-use util::thread::spawn_named;
use uuid::Uuid;
use webdriver::command::{AddCookieParameters, GetParameters, JavascriptCommandParameters};
use webdriver::command::{LocatorParameters, Parameters};
@@ -88,13 +87,13 @@ fn cookie_msg_to_cookie(cookie: cookie_rs::Cookie) -> Cookie {
pub fn start_server(port: u16, constellation_chan: Sender<ConstellationMsg>) {
let handler = Handler::new(constellation_chan);
- spawn_named("WebdriverHttpServer".to_owned(), move || {
+ thread::Builder::new().name("WebdriverHttpServer".to_owned()).spawn(move || {
let address = SocketAddrV4::new("0.0.0.0".parse().unwrap(), port);
match server::start(SocketAddr::V4(address), handler, extension_routes()) {
Ok(listening) => info!("WebDriver server listening on {}", listening.socket),
Err(_) => panic!("Unable to start WebDriver HTTPD server"),
}
- });
+ }).expect("Thread spawning failed");
}
struct WebDriverSession {
diff --git a/ports/cef/Cargo.toml b/ports/cef/Cargo.toml
index 3d2625b3aac..6bca49baae4 100644
--- a/ports/cef/Cargo.toml
+++ b/ports/cef/Cargo.toml
@@ -31,9 +31,10 @@ msg = {path = "../../components/msg"}
net_traits = {path = "../../components/net_traits"}
plugins = {path = "../../components/plugins"}
script_traits = {path = "../../components/script_traits"}
+servo_config = {path = "../../components/config"}
+servo_geometry = {path = "../../components/geometry"}
servo_url = {path = "../../components/url"}
style_traits = {path = "../../components/style_traits"}
-util = {path = "../../components/util"}
[target.'cfg(target_os="macos")'.dependencies]
objc = "0.2"
diff --git a/ports/cef/browser.rs b/ports/cef/browser.rs
index 707c202e545..22affc6f76a 100644
--- a/ports/cef/browser.rs
+++ b/ports/cef/browser.rs
@@ -10,7 +10,6 @@ use interfaces::{cef_browser_t, cef_browser_host_t, cef_client_t, cef_frame_t};
use interfaces::{cef_request_context_t};
use servo::Browser;
use types::{cef_browser_settings_t, cef_string_t, cef_window_info_t, cef_window_handle_t};
-use util::thread::spawn_named;
use window;
use wrappers::CefWrap;
@@ -21,6 +20,7 @@ use std::cell::{Cell, RefCell};
use std::ptr;
use std::rc::Rc;
use std::sync::atomic::{AtomicIsize, Ordering};
+use std::thread;
thread_local!(pub static ID_COUNTER: AtomicIsize = AtomicIsize::new(0));
thread_local!(pub static BROWSERS: RefCell<Vec<CefBrowser>> = RefCell::new(vec!()));
@@ -293,9 +293,9 @@ cef_static_method_impls! {
let _browser_settings: &cef_browser_settings_t = _browser_settings;
let _request_context: CefRequestContext = _request_context;
browser_host_create(window_info, client, url, false);
- spawn_named("async_browser_creation".to_owned(), move || {
+ thread::Builder::new().name("async_browser_creation".to_owned()).spawn(move || {
window::app_wakeup();
- });
+ }).expect("Thread spawning failed");
1i32
}}
fn cef_browser_host_create_browser_sync(window_info: *const cef_window_info_t,
@@ -309,4 +309,4 @@ cef_static_method_impls! {
let _request_context: CefRequestContext = _request_context;
browser_host_create(window_info, client, url, true)
}}
-} \ No newline at end of file
+}
diff --git a/ports/cef/core.rs b/ports/cef/core.rs
index e5e70acd7d3..7db9246355c 100644
--- a/ports/cef/core.rs
+++ b/ports/cef/core.rs
@@ -9,9 +9,9 @@ use window::init_window;
use browser;
use libc::{c_char, c_int, c_void};
+use servo_config::opts;
use std::ffi;
use std::str;
-use util::opts;
const MAX_RENDERING_THREADS: usize = 128;
diff --git a/ports/cef/lib.rs b/ports/cef/lib.rs
index c0008757dba..e270267b905 100644
--- a/ports/cef/lib.rs
+++ b/ports/cef/lib.rs
@@ -24,12 +24,13 @@ extern crate gleam;
extern crate glutin_app;
extern crate rustc_unicode;
extern crate script_traits;
+extern crate servo_config;
+extern crate servo_geometry;
extern crate servo_url;
extern crate style_traits;
extern crate net_traits;
extern crate msg;
-extern crate util;
extern crate libc;
diff --git a/ports/cef/window.rs b/ports/cef/window.rs
index 33a1c5749c6..f84c0b90d1f 100644
--- a/ports/cef/window.rs
+++ b/ports/cef/window.rs
@@ -27,6 +27,7 @@ use gfx_traits::DevicePixel;
use gleam::gl;
use msg::constellation_msg::{Key, KeyModifiers};
use net_traits::net_error_list::NetError;
+use servo_geometry::ScreenPx;
use std::cell::RefCell;
use std::ffi::CString;
use std::os::raw::{c_char, c_void};
@@ -35,7 +36,6 @@ use std::rc::Rc;
use std::sync::mpsc::{Sender, channel};
use servo_url::ServoUrl;
use style_traits::cursor::Cursor;
-use util::geometry::ScreenPx;
#[cfg(target_os="linux")]
extern crate x11;
#[cfg(target_os="linux")]
diff --git a/ports/glutin/Cargo.toml b/ports/glutin/Cargo.toml
index e18061babe0..9afffe6dc66 100644
--- a/ports/glutin/Cargo.toml
+++ b/ports/glutin/Cargo.toml
@@ -19,9 +19,10 @@ msg = {path = "../../components/msg"}
net_traits = {path = "../../components/net_traits"}
script_traits = {path = "../../components/script_traits"}
servo-glutin = "0.6"
+servo_geometry = {path = "../../components/geometry"}
+servo_config = {path = "../../components/config"}
servo_url = {path = "../../components/url"}
style_traits = {path = "../../components/style_traits"}
-util = {path = "../../components/util"}
[target.'cfg(any(target_os = "linux", target_os = "macos"))'.dependencies]
osmesa-sys = "0.1.2"
diff --git a/ports/glutin/lib.rs b/ports/glutin/lib.rs
index d44e8952530..3d1bb34a258 100644
--- a/ports/glutin/lib.rs
+++ b/ports/glutin/lib.rs
@@ -19,16 +19,17 @@ extern crate msg;
extern crate net_traits;
#[cfg(any(target_os = "linux", target_os = "macos"))] extern crate osmesa_sys;
extern crate script_traits;
+extern crate servo_config;
+extern crate servo_geometry;
extern crate servo_url;
extern crate style_traits;
-extern crate util;
#[cfg(target_os = "windows")] extern crate winapi;
#[cfg(target_os = "windows")] extern crate user32;
#[cfg(target_os = "windows")] extern crate gdi32;
use compositing::windowing::WindowEvent;
+use servo_config::opts;
use std::rc::Rc;
-use util::opts;
use window::Window;
pub mod window;
diff --git a/ports/glutin/window.rs b/ports/glutin/window.rs
index c19836cb4f4..11b77dafb60 100644
--- a/ports/glutin/window.rs
+++ b/ports/glutin/window.rs
@@ -26,6 +26,10 @@ use net_traits::net_error_list::NetError;
#[cfg(any(target_os = "linux", target_os = "macos"))]
use osmesa_sys;
use script_traits::{TouchEventType, TouchpadPressurePhase};
+use servo_config::opts;
+use servo_config::prefs::PREFS;
+use servo_config::resource_files;
+use servo_geometry::ScreenPx;
use servo_url::ServoUrl;
use std::cell::{Cell, RefCell};
#[cfg(any(target_os = "linux", target_os = "macos"))]
@@ -39,10 +43,6 @@ use std::sync::mpsc::{Sender, channel};
use style_traits::cursor::Cursor;
#[cfg(target_os = "windows")]
use user32;
-use util::geometry::ScreenPx;
-use util::opts;
-use util::prefs::PREFS;
-use util::resource_files;
#[cfg(target_os = "windows")]
use winapi;
diff --git a/ports/servo/Cargo.toml b/ports/servo/Cargo.toml
index d9ab8a459c9..23f12909766 100644
--- a/ports/servo/Cargo.toml
+++ b/ports/servo/Cargo.toml
@@ -22,8 +22,9 @@ net_traits_tests = {path = "../../tests/unit/net_traits"}
plugin_compiletest = {path = "../../tests/compiletest/plugin"}
profile_tests = {path = "../../tests/unit/profile"}
script_tests = {path = "../../tests/unit/script"}
+servo_config_tests = {path = "../../tests/unit/servo_config"}
+servo_remutex_tests = {path = "../../tests/unit/servo_remutex"}
style_tests = {path = "../../tests/unit/style"}
-util_tests = {path = "../../tests/unit/util"}
[features]
default = ["webdriver", "max_log_level"]
diff --git a/ports/servo/main.rs b/ports/servo/main.rs
index 89bac711f53..cefc093af7a 100644
--- a/ports/servo/main.rs
+++ b/ports/servo/main.rs
@@ -38,8 +38,8 @@ extern crate sig;
use backtrace::Backtrace;
use servo::Browser;
use servo::compositing::windowing::WindowEvent;
-use servo::util::opts::{self, ArgumentParsingResult};
-use servo::util::servo_version;
+use servo::config::opts::{self, ArgumentParsingResult};
+use servo::config::servo_version;
use std::env;
use std::panic;
use std::process;
@@ -286,10 +286,10 @@ mod android {
use self::libc::{pipe, dup2};
use self::libc::fdopen;
use self::libc::fgets;
- use servo::util::thread::spawn_named;
use std::ffi::CStr;
use std::ffi::CString;
use std::str::from_utf8;
+ use std::thread;
unsafe {
let mut pipes: [c_int; 2] = [ 0, 0 ];
@@ -297,7 +297,7 @@ mod android {
dup2(pipes[1], file_no);
let mode = CString::new("r").unwrap();
let input_file = FilePtr(fdopen(pipes[0], mode.as_ptr()));
- spawn_named("android-logger".to_owned(), move || {
+ thread::Builder::new().name("android-logger".to_owned()).spawn(move || {
static READ_SIZE: usize = 1024;
let mut read_buffer = vec![0; READ_SIZE];
let FilePtr(input_file) = input_file;
diff --git a/tests/unit/net/Cargo.toml b/tests/unit/net/Cargo.toml
index aa462c0c156..ea7916b89ef 100644
--- a/tests/unit/net/Cargo.toml
+++ b/tests/unit/net/Cargo.toml
@@ -22,8 +22,8 @@ net = {path = "../../../components/net"}
net_traits = {path = "../../../components/net_traits"}
plugins = {path = "../../../components/plugins"}
profile_traits = {path = "../../../components/profile_traits"}
+servo_config = {path = "../../../components/config"}
time = "0.1"
unicase = "1.0"
url = {version = "1.2", features = ["heap_size"]}
servo_url = {path = "../../../components/url"}
-util = {path = "../../../components/util"}
diff --git a/tests/unit/net/fetch.rs b/tests/unit/net/fetch.rs
index bc8ab6439d0..c5eb51b69f8 100644
--- a/tests/unit/net/fetch.rs
+++ b/tests/unit/net/fetch.rs
@@ -25,6 +25,7 @@ use net::fetch::methods::{fetch, fetch_with_cors_cache};
use net_traits::ReferrerPolicy;
use net_traits::request::{Origin, RedirectMode, Referrer, Request, RequestMode};
use net_traits::response::{CacheState, Response, ResponseBody, ResponseType};
+use servo_config::resource_files::resources_dir_path;
use servo_url::ServoUrl;
use std::fs::File;
use std::io::Read;
@@ -35,7 +36,6 @@ use std::sync::mpsc::{Sender, channel};
use time::{self, Duration};
use unicase::UniCase;
use url::Origin as UrlOrigin;
-use util::resource_files::resources_dir_path;
// TODO write a struct that impls Handler for storing test values
diff --git a/tests/unit/net/lib.rs b/tests/unit/net/lib.rs
index c9890544d94..cb8bc2edf89 100644
--- a/tests/unit/net/lib.rs
+++ b/tests/unit/net/lib.rs
@@ -16,11 +16,11 @@ extern crate msg;
extern crate net;
extern crate net_traits;
extern crate profile_traits;
+extern crate servo_config;
extern crate servo_url;
extern crate time;
extern crate unicase;
extern crate url;
-extern crate util;
#[cfg(test)] mod chrome_loader;
#[cfg(test)] mod cookie;
diff --git a/tests/unit/util/Cargo.toml b/tests/unit/servo_config/Cargo.toml
index 28e5415f417..dec49de186a 100644
--- a/tests/unit/util/Cargo.toml
+++ b/tests/unit/servo_config/Cargo.toml
@@ -1,14 +1,14 @@
[package]
-name = "util_tests"
+name = "servo_config_tests"
version = "0.0.1"
authors = ["The Servo Project Developers"]
license = "MPL-2.0"
[lib]
-name = "util_tests"
+name = "servo_config_tests"
path = "lib.rs"
doctest = false
[dependencies]
-util = {path = "../../../components/util"}
+servo_config = {path = "../../../components/config"}
diff --git a/tests/unit/util/lib.rs b/tests/unit/servo_config/lib.rs
index 96506d5973c..dc2a6446848 100644
--- a/tests/unit/util/lib.rs
+++ b/tests/unit/servo_config/lib.rs
@@ -4,9 +4,7 @@
#![cfg(test)]
-extern crate util;
+extern crate servo_config;
mod opts;
mod prefs;
-mod remutex;
-mod thread;
diff --git a/tests/unit/util/opts.rs b/tests/unit/servo_config/opts.rs
index 8367e1d5117..a6827fd05e9 100644
--- a/tests/unit/util/opts.rs
+++ b/tests/unit/servo_config/opts.rs
@@ -2,8 +2,8 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+use servo_config::opts::parse_url_or_filename;
use std::path::Path;
-use util::opts::parse_url_or_filename;
#[cfg(not(target_os = "windows"))]
const FAKE_CWD: &'static str = "/fake/cwd";
diff --git a/tests/unit/util/prefs.rs b/tests/unit/servo_config/prefs.rs
index 295a3e1fe2c..393b5a358d2 100644
--- a/tests/unit/util/prefs.rs
+++ b/tests/unit/servo_config/prefs.rs
@@ -2,10 +2,10 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+use servo_config::basedir;
+use servo_config::prefs::{PREFS, PrefValue, read_prefs_from_file};
use std::fs::{self, File};
use std::io::{Read, Write};
-use util::basedir;
-use util::prefs::{PREFS, PrefValue, read_prefs_from_file};
#[test]
fn test_create_pref() {
diff --git a/tests/unit/servo_remutex/Cargo.toml b/tests/unit/servo_remutex/Cargo.toml
new file mode 100644
index 00000000000..20782b623e2
--- /dev/null
+++ b/tests/unit/servo_remutex/Cargo.toml
@@ -0,0 +1,14 @@
+[package]
+name = "servo_remutex_tests"
+version = "0.0.1"
+authors = ["The Servo Project Developers"]
+license = "MPL-2.0"
+
+[lib]
+name = "servo_remutex_tests"
+path = "lib.rs"
+doctest = false
+
+[dependencies]
+servo_remutex = {path = "../../../components/remutex"}
+
diff --git a/tests/unit/util/remutex.rs b/tests/unit/servo_remutex/lib.rs
index a005d761d5f..411c943923c 100644
--- a/tests/unit/util/remutex.rs
+++ b/tests/unit/servo_remutex/lib.rs
@@ -10,10 +10,14 @@
// These tests came from https://github.com/rust-lang/rust/blob/master/src/libstd/sys/common/remutex.rs
+#![cfg(test)]
+
+extern crate servo_remutex;
+
+use servo_remutex::{ReentrantMutex, ReentrantMutexGuard};
use std::cell::RefCell;
use std::sync::Arc;
use std::thread;
-use util::remutex::{ReentrantMutex, ReentrantMutexGuard};
#[test]
fn smoke() {
diff --git a/tests/unit/style/Cargo.toml b/tests/unit/style/Cargo.toml
index a7fe7971cf7..4a7cf616d18 100644
--- a/tests/unit/style/Cargo.toml
+++ b/tests/unit/style/Cargo.toml
@@ -23,7 +23,7 @@ rustc-serialize = "0.3"
selectors = "0.15"
html5ever-atoms = "0.1"
servo_atoms = {path = "../../../components/atoms"}
+servo_config = {path = "../../../components/config"}
style = {path = "../../../components/style"}
style_traits = {path = "../../../components/style_traits"}
servo_url = {path = "../../../components/url"}
-util = {path = "../../../components/util"}
diff --git a/tests/unit/style/lib.rs b/tests/unit/style/lib.rs
index 95cd087ccbf..6b0ed472cbd 100644
--- a/tests/unit/style/lib.rs
+++ b/tests/unit/style/lib.rs
@@ -16,10 +16,10 @@ extern crate parking_lot;
extern crate rustc_serialize;
extern crate selectors;
#[macro_use] extern crate servo_atoms;
+extern crate servo_config;
extern crate servo_url;
extern crate style;
extern crate style_traits;
-extern crate util;
mod atomic_refcell;
mod attr;
diff --git a/tests/unit/style/viewport.rs b/tests/unit/style/viewport.rs
index a430089ba9b..9a3bc773a9c 100644
--- a/tests/unit/style/viewport.rs
+++ b/tests/unit/style/viewport.rs
@@ -6,6 +6,7 @@ use cssparser::Parser;
use euclid::scale_factor::ScaleFactor;
use euclid::size::TypedSize2D;
use media_queries::CSSErrorReporterTest;
+use servo_config::prefs::{PREFS, PrefValue};
use servo_url::ServoUrl;
use style::error_reporting::ParseErrorReporter;
use style::media_queries::{Device, MediaType};
@@ -35,8 +36,7 @@ fn test_viewport_rule<F>(css: &str,
callback: F)
where F: Fn(&Vec<ViewportDescriptorDeclaration>, &str)
{
- ::util::prefs::PREFS.set("layout.viewport.enabled",
- ::util::prefs::PrefValue::Boolean(true));
+ PREFS.set("layout.viewport.enabled", PrefValue::Boolean(true));
let stylesheet = stylesheet!(css, Author, Box::new(CSSErrorReporterTest));
let mut rule_count = 0;
stylesheet.effective_viewport_rules(&device, |rule| {
@@ -250,8 +250,7 @@ fn cascading_within_viewport_rule() {
#[test]
fn multiple_stylesheets_cascading() {
- ::util::prefs::PREFS.set("layout.viewport.enabled",
- ::util::prefs::PrefValue::Boolean(true));
+ PREFS.set("layout.viewport.enabled", PrefValue::Boolean(true));
let device = Device::new(MediaType::Screen, TypedSize2D::new(800., 600.));
let error_reporter = CSSErrorReporterTest;
let stylesheets = vec![
diff --git a/tests/unit/util/thread.rs b/tests/unit/util/thread.rs
deleted file mode 100644
index e76c39ffd35..00000000000
--- a/tests/unit/util/thread.rs
+++ /dev/null
@@ -1,13 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-use std::borrow::ToOwned;
-use util::thread::spawn_named;
-
-#[test]
-fn spawn_named_test() {
- spawn_named("Test".to_owned(), move || {
- println!("I can run!");
- });
-}