feat: add excludeUrls and modify urls in WebRequestFilter for better URL filtering (#45678)

* feat: add excludeUrls and modify urls in WebRequestFilter for better URL filtering (#44692)

* feat: add excludeUrls to web request filter

* refactor: add deprecated field

* test: update tests

* lint: newline

* docs: improve API doc

* fix: add is filter defined property to match all urls

* refactor: remove includeUrls

* refactor: remove typescript binding

* refactor: all_url

* refactor: remove isDefined methods

* refactor: remove comment

* fix: logic

* docs: add to breaking changes

* docs: remove unneeded section
This commit is contained in:
Alice Zhao 2025-02-20 12:54:58 -08:00 committed by GitHub
parent d291fa6ced
commit 5a641e02ee
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 150 additions and 32 deletions

View file

@ -51,6 +51,8 @@ class WebRequest final : public gin::Wrappable<WebRequest>,
static gin::Handle<WebRequest> From(v8::Isolate* isolate,
content::BrowserContext* browser_context);
static const char* GetClassName() { return "WebRequest"; }
// gin::Wrappable:
static gin::WrapperInfo kWrapperInfo;
gin::ObjectTemplateBuilder GetObjectTemplateBuilder(
@ -156,21 +158,28 @@ class WebRequest final : public gin::Wrappable<WebRequest>,
class RequestFilter {
public:
RequestFilter(std::set<URLPattern>,
std::set<URLPattern>,
std::set<extensions::WebRequestResourceType>);
RequestFilter(const RequestFilter&);
RequestFilter();
~RequestFilter();
void AddUrlPattern(URLPattern pattern);
void AddUrlPattern(URLPattern pattern, bool is_match_pattern);
void AddUrlPatterns(const std::set<std::string>& filter_patterns,
RequestFilter* filter,
gin::Arguments* args,
bool is_match_pattern = true);
void AddType(extensions::WebRequestResourceType type);
bool MatchesRequest(extensions::WebRequestInfo* info) const;
private:
bool MatchesURL(const GURL& url) const;
bool MatchesURL(const GURL& url,
const std::set<URLPattern>& patterns) const;
bool MatchesType(extensions::WebRequestResourceType type) const;
std::set<URLPattern> url_patterns_;
std::set<URLPattern> include_url_patterns_;
std::set<URLPattern> exclude_url_patterns_;
std::set<extensions::WebRequestResourceType> types_;
};