Bug 1711168 support extension matching in webAccessibleResources r=zombie,smaug,rpl

Differential Revision: https://phabricator.services.mozilla.com/D115114
This commit is contained in:
Shane Caraveo
2022-08-02 17:08:58 +00:00
parent 16b2b94bd8
commit 4e3ceb6b90
11 changed files with 370 additions and 42 deletions

View File

@@ -143,12 +143,24 @@ WebAccessibleResource::WebAccessibleResource(
return;
}
if (aInit.mMatches.WasPassed()) {
if (!aInit.mMatches.IsNull()) {
MatchPatternOptions options;
options.mRestrictSchemes = true;
mMatches = ParseMatches(aGlobal, aInit.mMatches.Value(), options,
ErrorBehavior::CreateEmptyPattern, aRv);
}
if (!aInit.mExtension_ids.IsNull()) {
mExtensionIDs = new AtomSet(aInit.mExtension_ids.Value());
}
}
bool WebAccessibleResource::IsExtensionMatch(const URLInfo& aURI) {
if (!mExtensionIDs) {
return false;
}
WebExtensionPolicy* policy = EPS().GetByHost(aURI.Host());
return policy && mExtensionIDs->Contains(policy->Id());
}
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(WebAccessibleResource)