1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-14 09:24:57 +00:00

Browser+Ladybird+LibWeb: Port content filters to String

This commit is contained in:
Timothy Flynn 2023-04-21 07:54:56 -04:00 committed by Andreas Kling
parent 76ae60da15
commit 5089766af6
11 changed files with 23 additions and 22 deletions

View file

@ -126,14 +126,15 @@ static ErrorOr<void> load_content_filters()
auto ad_filter_list = TRY(Core::BufferedFile::create(move(file)));
auto buffer = TRY(ByteBuffer::create_uninitialized(4096));
Vector<DeprecatedString> patterns;
Vector<String> patterns;
while (TRY(ad_filter_list->can_read_line())) {
auto line = TRY(ad_filter_list->read_line(buffer));
if (line.is_empty())
continue;
TRY(patterns.try_append(line));
auto pattern = TRY(String::from_utf8(line));
TRY(patterns.try_append(move(pattern)));
}
auto& content_filter = Web::ContentFilter::the();

View file

@ -15,7 +15,7 @@ namespace Browser {
extern DeprecatedString g_home_url;
extern DeprecatedString g_new_tab_url;
extern DeprecatedString g_search_engine;
extern Vector<DeprecatedString> g_content_filters;
extern Vector<String> g_content_filters;
extern bool g_content_filters_enabled;
extern Vector<String> g_autoplay_allowlist;
extern bool g_autoplay_allowed_on_all_websites;

View file

@ -126,11 +126,7 @@ Tab::Tab(BrowserWindow& window)
auto preferred_color_scheme = Web::CSS::preferred_color_scheme_from_string(Config::read_string("Browser"sv, "Preferences"sv, "ColorScheme"sv, "auto"sv));
m_web_content_view->set_preferred_color_scheme(preferred_color_scheme);
if (g_content_filters_enabled)
m_web_content_view->set_content_filters(g_content_filters);
else
m_web_content_view->set_content_filters({});
content_filters_changed();
autoplay_allowlist_changed();
m_web_content_view->set_proxy_mappings(g_proxies, g_proxy_mappings);

View file

@ -34,7 +34,7 @@ namespace Browser {
DeprecatedString g_search_engine;
DeprecatedString g_home_url;
DeprecatedString g_new_tab_url;
Vector<DeprecatedString> g_content_filters;
Vector<String> g_content_filters;
bool g_content_filters_enabled { true };
Vector<String> g_autoplay_allowlist;
bool g_autoplay_allowed_on_all_websites { false };
@ -47,7 +47,7 @@ DeprecatedString g_webdriver_content_ipc_path;
static ErrorOr<void> load_content_filters()
{
auto file = TRY(Core::File::open(DeprecatedString::formatted("{}/BrowserContentFilters.txt", Core::StandardPaths::config_directory()), Core::File::OpenMode::Read));
auto file = TRY(Core::File::open(TRY(String::formatted("{}/BrowserContentFilters.txt", Core::StandardPaths::config_directory())), Core::File::OpenMode::Read));
auto ad_filter_list = TRY(Core::BufferedFile::create(move(file)));
auto buffer = TRY(ByteBuffer::create_uninitialized(4096));
@ -55,8 +55,11 @@ static ErrorOr<void> load_content_filters()
while (TRY(ad_filter_list->can_read_line())) {
auto line = TRY(ad_filter_list->read_line(buffer));
if (!line.is_empty())
Browser::g_content_filters.append(line);
if (line.is_empty())
continue;
auto pattern = TRY(String::from_utf8(line));
TRY(Browser::g_content_filters.try_append(move(pattern)));
}
return {};

View file

@ -33,7 +33,7 @@ bool ContentFilter::is_filtered(const AK::URL& url) const
return false;
}
ErrorOr<void> ContentFilter::set_patterns(ReadonlySpan<DeprecatedString> patterns)
ErrorOr<void> ContentFilter::set_patterns(ReadonlySpan<String> patterns)
{
m_patterns.clear_with_capacity();
@ -46,7 +46,7 @@ ErrorOr<void> ContentFilter::set_patterns(ReadonlySpan<DeprecatedString> pattern
if (!pattern.ends_with('*'))
TRY(builder.try_append('*'));
TRY(m_patterns.try_empend(builder.to_deprecated_string()));
TRY(m_patterns.try_empend(TRY(builder.to_string())));
}
return {};

View file

@ -6,6 +6,7 @@
#pragma once
#include <AK/String.h>
#include <AK/URL.h>
#include <AK/Vector.h>
@ -16,14 +17,14 @@ public:
static ContentFilter& the();
bool is_filtered(const AK::URL&) const;
ErrorOr<void> set_patterns(ReadonlySpan<DeprecatedString>);
ErrorOr<void> set_patterns(ReadonlySpan<String>);
private:
ContentFilter();
~ContentFilter();
struct Pattern {
DeprecatedString text;
String text;
};
Vector<Pattern> m_patterns;
};

View file

@ -595,9 +595,9 @@ OrderedHashMap<DeprecatedString, DeprecatedString> OutOfProcessWebView::get_sess
return client().get_session_storage_entries();
}
void OutOfProcessWebView::set_content_filters(Vector<DeprecatedString> filters)
void OutOfProcessWebView::set_content_filters(Vector<String> filters)
{
client().async_set_content_filters(filters);
client().async_set_content_filters(move(filters));
}
void OutOfProcessWebView::set_autoplay_allowed_on_all_websites()

View file

@ -42,7 +42,7 @@ public:
OrderedHashMap<DeprecatedString, DeprecatedString> get_local_storage_entries();
OrderedHashMap<DeprecatedString, DeprecatedString> get_session_storage_entries();
void set_content_filters(Vector<DeprecatedString>);
void set_content_filters(Vector<String>);
void set_autoplay_allowed_on_all_websites();
void set_autoplay_allowlist(Vector<String>);
void set_proxy_mappings(Vector<DeprecatedString> proxies, HashMap<DeprecatedString, size_t> mappings);

View file

@ -634,7 +634,7 @@ Messages::WebContentServer::DumpLayoutTreeResponse ConnectionFromClient::dump_la
return builder.to_deprecated_string();
}
void ConnectionFromClient::set_content_filters(Vector<DeprecatedString> const& filters)
void ConnectionFromClient::set_content_filters(Vector<String> const& filters)
{
Web::ContentFilter::the().set_patterns(filters).release_value_but_fixme_should_propagate_errors();
}

View file

@ -74,7 +74,7 @@ private:
virtual void inspect_accessibility_tree() override;
virtual Messages::WebContentServer::GetHoveredNodeIdResponse get_hovered_node_id() override;
virtual Messages::WebContentServer::DumpLayoutTreeResponse dump_layout_tree() override;
virtual void set_content_filters(Vector<DeprecatedString> const&) override;
virtual void set_content_filters(Vector<String> const&) override;
virtual void set_autoplay_allowed_on_all_websites() override;
virtual void set_autoplay_allowlist(Vector<String> const& allowlist) override;
virtual void set_proxy_mappings(Vector<DeprecatedString> const&, HashMap<DeprecatedString, size_t> const&) override;

View file

@ -54,7 +54,7 @@ endpoint WebContentServer
get_selected_text() => (DeprecatedString selection)
select_all() =|
set_content_filters(Vector<DeprecatedString> filters) =|
set_content_filters(Vector<String> filters) =|
set_autoplay_allowed_on_all_websites() =|
set_autoplay_allowlist(Vector<String> allowlist) =|
set_proxy_mappings(Vector<DeprecatedString> proxies, HashMap<DeprecatedString,size_t> mappings) =|