diff options
-rw-r--r-- | Cargo.lock | 14 | ||||
-rw-r--r-- | ports/winit/app.rs | 4 | ||||
-rw-r--r-- | ports/winit/browser.rs | 16 | ||||
-rw-r--r-- | ports/winit/crash_handler.rs | 2 | ||||
-rw-r--r-- | ports/winit/events_loop.rs | 6 | ||||
-rw-r--r-- | ports/winit/headed_window.rs | 31 | ||||
-rw-r--r-- | ports/winit/headless_window.rs | 4 | ||||
-rw-r--r-- | ports/winit/prefs.rs | 14 | ||||
-rw-r--r-- | ports/winit/window_trait.rs | 2 | ||||
-rw-r--r-- | python/servo/devenv_commands.py | 65 | ||||
-rw-r--r-- | python/servo/package_commands.py | 20 |
11 files changed, 52 insertions, 126 deletions
diff --git a/Cargo.lock b/Cargo.lock index d96e8c5364f..28491a85a61 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -293,12 +293,6 @@ dependencies = [ [[package]] name = "base64" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d5ca2cd0adc3f48f9e9ea5a6bbdf9ccc0bfade884847e484d452414c7ccffb3" - -[[package]] -name = "base64" version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" @@ -5021,11 +5015,11 @@ dependencies = [ [[package]] name = "ron" -version = "0.6.0" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a91260f321dbf3b5a16ff91c451dc9eb644ce72775a6812f9c3dfffe63818f8f" +checksum = "86018df177b1beef6c7c8ef949969c4f7cb9a9344181b92486b23c79995bdaa4" dependencies = [ - "base64 0.12.0", + "base64 0.13.0", "bitflags", "serde", ] @@ -7236,7 +7230,7 @@ dependencies = [ "gfx-memory", "naga", "parking_lot 0.11.2", - "ron 0.6.0", + "ron 0.6.6", "serde", "smallvec", "thiserror", diff --git a/ports/winit/app.rs b/ports/winit/app.rs index d22edee25aa..1f01d585041 100644 --- a/ports/winit/app.rs +++ b/ports/winit/app.rs @@ -19,7 +19,7 @@ use servo::Servo; use std::cell::{Cell, RefCell}; use std::collections::HashMap; use std::env; -use std::mem; + use std::rc::Rc; use webxr::glwindow::GlWindowDiscovery; @@ -138,7 +138,7 @@ impl App { } fn get_events(&self) -> Vec<WindowEvent> { - mem::replace(&mut *self.event_queue.borrow_mut(), Vec::new()) + std::mem::take(&mut *self.event_queue.borrow_mut()) } // This function decides whether the event should be handled during `run_forever`. diff --git a/ports/winit/browser.rs b/ports/winit/browser.rs index 4c685fd4b57..22f7d1dd612 100644 --- a/ports/winit/browser.rs +++ b/ports/winit/browser.rs @@ -23,7 +23,7 @@ use servo::webrender_api::ScrollLocation; use std::env; use std::fs::File; use std::io::Write; -use std::mem; + use std::rc::Rc; use std::thread; use std::time::Duration; @@ -59,7 +59,7 @@ where current_url: None, browser_id: None, browsers: Vec::new(), - window: window, + window, clipboard_ctx: match ClipboardContext::new() { Ok(c) => Some(c), Err(e) => { @@ -73,7 +73,7 @@ where } pub fn get_events(&mut self) -> Vec<WindowEvent> { - mem::replace(&mut self.event_queue, Vec::new()) + std::mem::take(&mut self.event_queue) } pub fn handle_window_events(&mut self, events: Vec<WindowEvent>) { @@ -279,7 +279,7 @@ where String::from("Untitled") }; let title = match self.title { - Some(ref title) if title.len() > 0 => &**title, + Some(ref title) if !title.is_empty() => &**title, _ => &fallback_title, }; let title = format!("{} - Servo", title); @@ -563,7 +563,7 @@ fn platform_get_selected_devices(devices: Vec<String>) -> Option<String> { match tinyfiledialogs::list_dialog("Choose a device", &["Id", "Name"], dialog_rows) { Some(device) => { // The device string format will be "Address|Name". We need the first part of it. - device.split("|").next().map(|s| s.to_string()) + device.split('|').next().map(|s| s.to_string()) }, None => None, } @@ -598,7 +598,7 @@ fn get_selected_files(patterns: Vec<FilterPattern>, multiple_files: bool) -> Opt filters.push(tiny_dialog_escape(&s)) } let filter_ref = &(filters.iter().map(|s| s.as_str()).collect::<Vec<&str>>()[..]); - let filter_opt = if filters.len() > 0 { + let filter_opt = if !filters.is_empty() { Some((filter_ref, "")) } else { None @@ -618,7 +618,7 @@ fn get_selected_files(patterns: Vec<FilterPattern>, multiple_files: bool) -> Opt fn sanitize_url(request: &str) -> Option<ServoUrl> { let request = request.trim(); - ServoUrl::parse(&request) + ServoUrl::parse(request) .ok() .or_else(|| { if request.contains('/') || is_reg_domain(request) { @@ -650,7 +650,7 @@ fn tiny_dialog_escape(raw: &str) -> String { _ => Some(c), }) .collect(); - return shellwords::escape(&s); + shellwords::escape(&s) } #[cfg(not(target_os = "linux"))] diff --git a/ports/winit/crash_handler.rs b/ports/winit/crash_handler.rs index 77adba159ae..1420c2f173f 100644 --- a/ports/winit/crash_handler.rs +++ b/ports/winit/crash_handler.rs @@ -26,7 +26,7 @@ pub fn install() { if let Some(name) = thread::current().name() { let _ = write!(&mut stderr, " in thread \"{}\"", name); } - let _ = write!(&mut stderr, "\n"); + let _ = writeln!(&mut stderr); // This call always allocates, which in practice will segfault if // we’re handling a non-main-thread (e.g. layout) segfault. Strictly diff --git a/ports/winit/events_loop.rs b/ports/winit/events_loop.rs index 6275ffee183..fba97676105 100644 --- a/ports/winit/events_loop.rs +++ b/ports/winit/events_loop.rs @@ -7,7 +7,7 @@ use servo::embedder_traits::EventLoopWaker; use std::sync::{Arc, Condvar, Mutex}; use std::time; -use winit; + #[cfg(target_os = "macos")] use winit::platform::macos::{ActivationPolicy, EventLoopBuilderExtMacOS}; @@ -66,7 +66,7 @@ impl EventsLoop { let events_loop = events_loop .as_ref() .expect("Can't create waker for unavailable event loop."); - Box::new(HeadedEventLoopWaker::new(&events_loop)) + Box::new(HeadedEventLoopWaker::new(events_loop)) }, EventLoop::Headless(ref data) => Box::new(HeadlessEventLoopWaker(data.clone())), } @@ -95,7 +95,7 @@ impl EventsLoop { }); } EventLoop::Headless(ref data) => { - let &(ref flag, ref condvar) = &**data; + let (flag, condvar) = &**data; let mut event = winit::event::Event::NewEvents(winit::event::StartCause::Init); loop { self.sleep(flag, condvar); diff --git a/ports/winit/headed_window.rs b/ports/winit/headed_window.rs index 318f2083828..849d53be90d 100644 --- a/ports/winit/headed_window.rs +++ b/ports/winit/headed_window.rs @@ -14,9 +14,8 @@ use euclid::{ #[cfg(any(target_os = "linux", target_os = "windows"))] use winit::window::Icon; use winit::event::{ElementState, KeyboardInput, MouseButton, MouseScrollDelta, TouchPhase, VirtualKeyCode}; -#[cfg(any(target_os = "linux", target_os = "windows"))] -use image; -use keyboard_types::{Key, KeyState, KeyboardEvent}; + +use servo::keyboard_types::{Key, KeyState, KeyboardEvent}; use servo::compositing::windowing::{AnimationState, MouseWindowEvent, WindowEvent}; use servo::compositing::windowing::{EmbedderCoordinates, WindowMethods}; use servo::embedder_traits::Cursor; @@ -31,7 +30,7 @@ use servo::webrender_surfman::WebrenderSurfman; use servo_media::player::context::{GlApi, GlContext as PlayerGLContext, NativeDisplay}; use std::cell::{Cell, RefCell}; use std::collections::HashMap; -use std::mem; + use std::rc::Rc; #[cfg(target_os = "linux")] use surfman::platform::generic::multi::connection::NativeConnection; @@ -120,10 +119,10 @@ impl Window { let PhysicalSize { width: screen_width, height: screen_height, - } = primary_monitor.clone().size(); - let screen_size = Size2D::new(screen_width as u32, screen_height as u32); + } = primary_monitor.size(); + let screen_size = Size2D::new(screen_width, screen_height); let PhysicalSize { width, height } = winit_window.inner_size(); - let inner_size = Size2D::new(width as u32, height as u32); + let inner_size = Size2D::new(width, height); // Initialize surfman let connection = @@ -298,7 +297,7 @@ impl Window { impl WindowPortsMethods for Window { fn get_events(&self) -> Vec<WindowEvent> { - mem::replace(&mut *self.event_queue.borrow_mut(), Vec::new()) + std::mem::take(&mut *self.event_queue.borrow_mut()) } fn has_events(&self) -> bool { @@ -319,12 +318,12 @@ impl WindowPortsMethods for Window { fn set_inner_size(&self, size: DeviceIntSize) { self.winit_window - .set_inner_size::<PhysicalSize<i32>>(PhysicalSize::new(size.width.into(), size.height.into())) + .set_inner_size::<PhysicalSize<i32>>(PhysicalSize::new(size.width, size.height)) } fn set_position(&self, point: DeviceIntPoint) { self.winit_window - .set_outer_position::<PhysicalPosition<i32>>(PhysicalPosition::new(point.x.into(), point.y.into())) + .set_outer_position::<PhysicalPosition<i32>>(PhysicalPosition::new(point.x, point.y)) } fn set_fullscreen(&self, state: bool) { @@ -340,7 +339,7 @@ impl WindowPortsMethods for Window { } fn get_fullscreen(&self) -> bool { - return self.fullscreen.get(); + self.fullscreen.get() } fn set_cursor(&self, cursor: Cursor) { @@ -532,7 +531,7 @@ impl WindowMethods for Window { viewport, framebuffer, window: (win_size, win_origin), - screen: screen, + screen, // FIXME: Winit doesn't have API for available size. Fallback to screen size screen_avail: screen, hidpi_factor: self.servo_hidpi_factor(), @@ -672,11 +671,11 @@ impl webxr::glwindow::GlWindow for XRWindow { } fn get_rotation(&self) -> Rotation3D<f32, UnknownUnit, UnknownUnit> { - self.pose.xr_rotation.get().clone() + self.pose.xr_rotation.get() } fn get_translation(&self) -> Vector3D<f32, UnknownUnit> { - self.pose.xr_translation.get().clone() + self.pose.xr_translation.get() } fn get_mode(&self) -> webxr::glwindow::GlWindowMode { @@ -736,8 +735,8 @@ impl XRWindowPose { _ => return, }; if modifiers.shift() { - x = 10.0 * x; - y = 10.0 * y; + x *= 10.0; + y *= 10.0; } let x: Rotation3D<_, UnknownUnit, UnknownUnit> = Rotation3D::around_x(Angle::degrees(x)); let y: Rotation3D<_, UnknownUnit, UnknownUnit> = Rotation3D::around_y(Angle::degrees(y)); diff --git a/ports/winit/headless_window.rs b/ports/winit/headless_window.rs index 7402a5c5221..45bba801105 100644 --- a/ports/winit/headless_window.rs +++ b/ports/winit/headless_window.rs @@ -20,7 +20,7 @@ use surfman::Connection; use surfman::Context; use surfman::Device; use surfman::SurfaceType; -use winit; + pub struct Window { webrender_surfman: WebrenderSurfman, @@ -91,7 +91,7 @@ impl WindowPortsMethods for Window { } fn get_fullscreen(&self) -> bool { - return self.fullscreen.get(); + self.fullscreen.get() } fn is_animating(&self) -> bool { diff --git a/ports/winit/prefs.rs b/ports/winit/prefs.rs index 3d95ea2a65b..92c4d0c9c68 100644 --- a/ports/winit/prefs.rs +++ b/ports/winit/prefs.rs @@ -17,12 +17,12 @@ pub fn register_user_prefs(opts_matches: &Matches) { let user_prefs_path = opts::get() .config_dir .clone() - .or_else(|| basedir::default_config_dir()) + .or_else(basedir::default_config_dir) .map(|path| path.join("prefs.json")) .filter(|path| path.exists()); let mut userprefs = if let Some(path) = user_prefs_path { - let mut file = File::open(&path).expect("Error opening user prefs"); + let mut file = File::open(path).expect("Error opening user prefs"); let mut txt = String::new(); file.read_to_string(&mut txt) .expect("Can't read user prefs file"); @@ -41,9 +41,9 @@ pub fn register_user_prefs(opts_matches: &Matches) { Some("true") | None => PrefValue::Bool(true), Some("false") => PrefValue::Bool(false), Some(string) => { - if let Some(int) = string.parse::<i64>().ok() { + if let Ok(int) = string.parse::<i64>() { PrefValue::Int(int) - } else if let Some(float) = string.parse::<f64>().ok() { + } else if let Ok(float) = string.parse::<f64>() { PrefValue::Float(float) } else { PrefValue::from(string) @@ -83,14 +83,14 @@ fn test_parse_pref_from_command_line() { prefs::pref_map().get("dom.bluetooth.enabled"), PrefValue::Bool(true) ); - assert_eq!(pref!(dom.bluetooth.enabled), true); + assert!(pref!(dom.bluetooth.enabled)); test_parse_pref("dom.bluetooth.enabled=false"); assert_eq!( prefs::pref_map().get("dom.bluetooth.enabled"), PrefValue::Bool(false) ); - assert_eq!(pref!(dom.bluetooth.enabled), false); + assert!(pref!(dom.bluetooth.enabled)); // Test with numbers test_parse_pref("layout.threads=42"); @@ -105,7 +105,7 @@ fn test_parse_pref_from_command_line() { .set("dom.bluetooth.enabled", false) .unwrap(); test_parse_pref("dom.bluetooth.enabled"); - assert_eq!(pref!(dom.bluetooth.enabled), true); + assert!(pref!(dom.bluetooth.enabled)); } #[test] diff --git a/ports/winit/window_trait.rs b/ports/winit/window_trait.rs index d44c853e0d3..a5b13093ae3 100644 --- a/ports/winit/window_trait.rs +++ b/ports/winit/window_trait.rs @@ -9,7 +9,7 @@ use crate::events_loop::ServoEvent; use servo::compositing::windowing::{WindowEvent, WindowMethods}; use servo::embedder_traits::Cursor; use servo::webrender_api::units::{DeviceIntPoint, DeviceIntSize}; -use winit; + // This should vary by zoom level and maybe actual text size (focused or under cursor) pub const LINE_HEIGHT: f32 = 38.0; diff --git a/python/servo/devenv_commands.py b/python/servo/devenv_commands.py index 7d3481d1c19..4385fbb8794 100644 --- a/python/servo/devenv_commands.py +++ b/python/servo/devenv_commands.py @@ -10,7 +10,6 @@ from __future__ import print_function, unicode_literals from os import path, listdir, getcwd -import json import signal import subprocess import sys @@ -96,67 +95,19 @@ class MachCommands(CommandBase): if not params: params = [] - if dry_run: - import toml - import httplib - import colorama - - cargo_file = open(path.join(self.context.topdir, "Cargo.lock")) - content = toml.load(cargo_file) - - packages = {} - outdated_packages = 0 - conn = httplib.HTTPSConnection("crates.io") - for package in content.get("package", []): - if "replace" in package: - continue - source = package.get("source", "") - if source == r"registry+https://github.com/rust-lang/crates.io-index": - version = package["version"] - name = package["name"] - if not packages.get(name, "") or packages[name] > version: - packages[name] = package["version"] - conn.request('GET', '/api/v1/crates/{}/versions'.format(package["name"])) - r = conn.getresponse() - json_content = json.load(r) - for v in json_content.get("versions"): - if not v.get("yanked"): - max_version = v.get("num") - break - - if version != max_version: - outdated_packages += 1 - version_major, version_minor = (version.split("."))[:2] - max_major, max_minor = (max_version.split("."))[:2] - - if version_major == max_major and version_minor == max_minor and "alpha" not in version: - msg = "minor update" - msg_color = "\033[93m" - else: - msg = "update, which may contain breaking changes" - msg_color = "\033[91m" - - colorama.init() - print("{}Outdated package `{}`, available {}\033[0m".format(msg_color, name, msg), - "\n\tCurrent version: {}".format(version), - "\n\t Latest version: {}".format(max_version)) - conn.close() - - print("\nFound {} outdated packages from crates.io".format(outdated_packages)) - elif package: - params += ["-p", package] - elif all_packages: - params = [] - else: + if not package and not all_packages: print("Please choose package to update with the --package (-p) ") print("flag or update all packages with --all-packages (-a) flag") sys.exit(1) - if params or all_packages: - self.ensure_bootstrapped() + if package: + params += ["-p", package] + if dry_run: + params.append("--dry-run") - with cd(self.context.topdir): - self.call_rustup_run(["cargo", "update"] + params, env=self.build_env()) + self.ensure_bootstrapped() + with cd(self.context.topdir): + self.call_rustup_run(["cargo", "update"] + params, env=self.build_env()) @Command('rustc', description='Run the Rust compiler', diff --git a/python/servo/package_commands.py b/python/servo/package_commands.py index 1f4e87f9830..1488eadbd3e 100644 --- a/python/servo/package_commands.py +++ b/python/servo/package_commands.py @@ -82,24 +82,6 @@ PACKAGES = { } -TemporaryDirectory = None -if sys.version_info >= (3, 2): - TemporaryDirectory = tempfile.TemporaryDirectory -else: - import contextlib - - # Not quite as robust as tempfile.TemporaryDirectory, - # but good enough for most purposes - @contextlib.contextmanager - def TemporaryDirectory(**kwargs): - dir_name = tempfile.mkdtemp(**kwargs) - try: - yield dir_name - except Exception as e: - shutil.rmtree(dir_name) - raise e - - def listfiles(directory): return [f for f in os.listdir(directory) if path.isfile(path.join(directory, f))] @@ -683,7 +665,7 @@ class PackageCommands(CommandBase): brew_version = timestamp.strftime('%Y.%m.%d') - with TemporaryDirectory(prefix='homebrew-servo') as tmp_dir: + with tempfile.TemporaryDirectory(prefix='homebrew-servo') as tmp_dir: def call_git(cmd, **kwargs): subprocess.check_call( ['git', '-C', tmp_dir] + cmd, |