Browser: Turn on multi-process mode by default :^)
Frick it, let's just enable this by default and give ourselves a reason to improve things! Some things are broken, and there's a bit of flicker when resizing, but we can do this. This drastically improves our web browsing security model by isolating each tab into its own WebContent process that runs as an unprivileged user with a tight pledge+unveil sandbox. To get a single-process browser, you can start it with -s.
This commit is contained in:
parent
74c8490acd
commit
ded78fc074
Notes:
sideshowbarker
2024-07-18 22:43:01 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/SerenityOS/serenity/commit/ded78fc0747
1 changed files with 4 additions and 4 deletions
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org>
|
||||
* Copyright (c) 2018-2021, Andreas Kling <kling@serenityos.org>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -51,7 +51,7 @@
|
|||
namespace Browser {
|
||||
|
||||
String g_home_url;
|
||||
bool g_multi_process = false;
|
||||
static bool s_single_process = false;
|
||||
|
||||
static String bookmarks_file_path()
|
||||
{
|
||||
|
@ -78,7 +78,7 @@ int main(int argc, char** argv)
|
|||
const char* specified_url = nullptr;
|
||||
|
||||
Core::ArgsParser args_parser;
|
||||
args_parser.add_option(Browser::g_multi_process, "Multi-process mode", "multi-process", 'm');
|
||||
args_parser.add_option(Browser::s_single_process, "Single-process mode", "single-process", 's');
|
||||
args_parser.add_positional_argument(specified_url, "URL to open", "url", Core::ArgsParser::Required::No);
|
||||
args_parser.parse(argc, argv);
|
||||
|
||||
|
@ -180,7 +180,7 @@ int main(int argc, char** argv)
|
|||
|
||||
Function<void(URL url, bool activate)> create_new_tab;
|
||||
create_new_tab = [&](auto url, auto activate) {
|
||||
auto type = Browser::g_multi_process ? Browser::Tab::Type::OutOfProcessWebView : Browser::Tab::Type::InProcessWebView;
|
||||
auto type = Browser::s_single_process ? Browser::Tab::Type::InProcessWebView : Browser::Tab::Type::OutOfProcessWebView;
|
||||
auto& new_tab = tab_widget.add_tab<Browser::Tab>("New tab", type);
|
||||
|
||||
tab_widget.set_bar_visible(!window->is_fullscreen() && tab_widget.children().size() > 1);
|
||||
|
|
Loading…
Add table
Reference in a new issue