Extract user_agent from global opts

This commit is contained in:
Utsav Oza 2020-04-03 20:48:37 +05:30
parent 50ea9fc02d
commit 2c306227e9
9 changed files with 108 additions and 75 deletions

View file

@ -40,6 +40,7 @@ impl App {
use_msaa: bool,
no_native_titlebar: bool,
device_pixels_per_px: Option<f32>,
user_agent: Option<String>,
) {
let events_loop = EventsLoop::new(opts::get().headless);
@ -70,7 +71,7 @@ impl App {
// Handle browser state.
let browser = Browser::new(window.clone());
let mut servo = Servo::new(embedder, window.clone());
let mut servo = Servo::new(embedder, window.clone(), user_agent);
let browser_id = BrowserId::new();
servo.handle_events(vec![WindowEvent::NewBrowser(get_default_url(), browser_id)]);
servo.setup_logging();

View file

@ -104,6 +104,12 @@ pub fn main() {
opts.optflag("", "msaa", "Use multisample antialiasing in WebRender.");
opts.optflag("b", "no-native-titlebar", "Do not use native titlebar");
opts.optopt("", "device-pixel-ratio", "Device pixels per px", "");
opts.optopt(
"u",
"user-agent",
"Set custom user agent string (or ios / android / desktop for platform default)",
"NCSA Mosaic/1.0 (X11;SunOS 4.1.4 sun4m)",
);
let opts_matches;
let content_process_token;
@ -173,12 +179,20 @@ pub fn main() {
let use_msaa = opts_matches.opt_present("msaa");
let device_pixels_per_px = opts_matches.opt_str("device-pixel-ratio").map(|dppx_str| {
dppx_str.parse().unwrap_or_else(|err| {
error!( "Error parsing option: --device-pixel-ratio ({})", err);
error!("Error parsing option: --device-pixel-ratio ({})", err);
process::exit(1);
})
});
let user_agent = opts_matches.opt_str("u");
App::run(angle, enable_vsync, use_msaa, do_not_use_native_titlebar, device_pixels_per_px);
App::run(
angle,
enable_vsync,
use_msaa,
do_not_use_native_titlebar,
device_pixels_per_px,
user_agent,
);
platform::deinit(clean_shutdown)
}

View file

@ -205,7 +205,7 @@ impl ServoThread {
let window = Rc::new(ServoWebSrcWindow::new(connection, version));
let swap_chain = window.swap_chain.clone();
let gfx = window.gfx.clone();
let mut servo = Servo::new(embedder, window);
let mut servo = Servo::new(embedder, window, None);
let id = TopLevelBrowsingContextId::new();
servo.handle_events(vec![WindowEvent::NewBrowser(url, id)]);

View file

@ -235,7 +235,7 @@ pub fn init(
gl: gl.clone(),
});
let servo = Servo::new(embedder_callbacks, window_callbacks.clone());
let servo = Servo::new(embedder_callbacks, window_callbacks.clone(), None);
SERVO.with(|s| {
let mut servo_glue = ServoGlue {