Bug 1900392 - Isolate x-moz-ews URI scheme to parent process. r=nika,jesup,smaug

Thunderbird architecture does not currently allow for redirecting channels to
child processes, so new schemes need to be isolated to the parent process.
`x-moz-ews` was selected to clearly designate that the scheme is private and
restricted to Mozilla/MZLA code. It doesn't follow the RFC 7595 recommendation
to use a registered domain as a namespace, but this was felt to be unwieldy.

Differential Revision: https://phabricator.services.mozilla.com/D212439
This commit is contained in:
Sean Burke 2024-06-03 21:04:18 +00:00
parent 05d9a8a7d5
commit 9b0f0d66e0
3 changed files with 3 additions and 3 deletions

View file

@ -27,7 +27,7 @@ static constexpr nsLiteralCString kDisallowedSchemes[] = {
"chrome"_ns, "data"_ns, "imap"_ns,
"javascript"_ns, "mailbox"_ns, "news"_ns,
"page-icon"_ns, "resource"_ns, "view-source"_ns,
"moz-extension"_ns, "moz-page-thumb"_ns,
"moz-extension"_ns, "moz-page-thumb"_ns, "x-moz-ews"_ns,
};
bool BaseHistory::CanStore(nsIURI* aURI) {

View file

@ -9576,7 +9576,7 @@ bool nsDocShell::CanLoadInParentProcess(nsIURI* aURI) {
#ifdef MOZ_THUNDERBIRD
if (uri->SchemeIs("imap") || uri->SchemeIs("mailbox") ||
uri->SchemeIs("news") || uri->SchemeIs("nntp") ||
uri->SchemeIs("snews")) {
uri->SchemeIs("snews") || uri->SchemeIs("x-moz-ews")) {
return true;
}
#endif

View file

@ -317,7 +317,7 @@ static IsolationBehavior IsolationBehaviorForURI(nsIURI* aURI, bool aIsSubframe,
// Protocols used by Thunderbird to display email messages.
if (scheme == "imap"_ns || scheme == "mailbox"_ns || scheme == "news"_ns ||
scheme == "nntp"_ns || scheme == "snews"_ns) {
scheme == "nntp"_ns || scheme == "snews"_ns || scheme == "x-moz-ews"_ns) {
return IsolationBehavior::Parent;
}