Skip to content

Commit

Permalink
Bug 1416066 - Add a new flag to nsIAboutModule to load URIs in privil…
Browse files Browse the repository at this point in the history
…eged content processes if feature is enabled. r=mconley

We will apply the URI_CAN_LOAD_IN_PRIVILEGED_CHILD flag to Activity Stream about: pages instead of hardcoding the URLs in a Set.

MozReview-Commit-ID: F6AGmsKs1SR
  • Loading branch information
imjching committed Jul 3, 2018
1 parent d5b305d commit c049bbe
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 9 deletions.
2 changes: 2 additions & 0 deletions browser/components/about/AboutRedirector.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ static const uint32_t ACTIVITY_STREAM_FLAGS =
nsIAboutModule::ALLOW_SCRIPT |
nsIAboutModule::ENABLE_INDEXED_DB |
nsIAboutModule::URI_MUST_LOAD_IN_CHILD |
nsIAboutModule::URI_CAN_LOAD_IN_PRIVILEGED_CHILD |
nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT;

struct RedirEntry {
Expand Down Expand Up @@ -92,6 +93,7 @@ static const RedirEntry kRedirMap[] = {
{ "newtab", "about:blank", ACTIVITY_STREAM_FLAGS },
{ "welcome", "about:blank",
nsIAboutModule::URI_MUST_LOAD_IN_CHILD |
nsIAboutModule::URI_CAN_LOAD_IN_PRIVILEGED_CHILD |
nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
nsIAboutModule::ALLOW_SCRIPT },
{ "library", "chrome://browser/content/aboutLibrary.xhtml",
Expand Down
15 changes: 11 additions & 4 deletions netwerk/protocol/about/nsIAboutModule.idl
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@ interface nsIChannel;
interface nsILoadInfo;

[scriptable, uuid(c0c19db9-1b5a-4ac5-b656-ed6f8149fa48)]
interface nsIAboutModule : nsISupports
interface nsIAboutModule : nsISupports
{

/**
* Constructs a new channel for the about protocol module.
* Constructs a new channel for the about protocol module.
*
* @param aURI the uri of the new channel
* @param aLoadInfo the loadinfo of the new channel
Expand Down Expand Up @@ -71,6 +71,13 @@ interface nsIAboutModule : nsISupports
*/
const unsigned long MAKE_LINKABLE = (1 << 7);

/**
* A flag that indicates that this URI can be loaded in the privileged
* content process if privileged content process is enabled. Ignored unless
* URI_MUST_LOAD_IN_CHILD is also specified.
*/
const unsigned long URI_CAN_LOAD_IN_PRIVILEGED_CHILD = (1 << 8);

/**
* A method to get the flags that apply to a given about: URI. The URI
* passed in is guaranteed to be one of the URIs that this module
Expand All @@ -81,8 +88,8 @@ interface nsIAboutModule : nsISupports

%{C++

#define NS_ABOUT_MODULE_CONTRACTID "@mozilla.org/network/protocol/about;1"
#define NS_ABOUT_MODULE_CONTRACTID_PREFIX NS_ABOUT_MODULE_CONTRACTID "?what="
#define NS_ABOUT_MODULE_CONTRACTID "@mozilla.org/network/protocol/about;1"
#define NS_ABOUT_MODULE_CONTRACTID_PREFIX NS_ABOUT_MODULE_CONTRACTID "?what="
#define NS_ABOUT_MODULE_CONTRACTID_LENGTH 49 // strlen(NS_ABOUT_MODULE_CONTRACTID_PREFIX)

%}
7 changes: 2 additions & 5 deletions toolkit/modules/E10SUtils.jsm
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,6 @@ const PRIVILEGED_REMOTE_TYPE = "privileged";
const LARGE_ALLOCATION_REMOTE_TYPE = "webLargeAllocation";
const DEFAULT_REMOTE_TYPE = WEB_REMOTE_TYPE;

const ACTIVITY_STREAM_PAGES = new Set(["home", "newtab", "welcome"]);

function validatedWebRemoteType(aPreferredRemoteType, aTargetUri, aCurrentUri) {
// If the domain is whitelisted to allow it to use file:// URIs, then we have
// to run it in a file content process, in case it uses file:// sub-resources.
Expand Down Expand Up @@ -159,9 +157,8 @@ var E10SUtils = {

let flags = module.getURIFlags(aURI);
if (flags & Ci.nsIAboutModule.URI_MUST_LOAD_IN_CHILD) {
// Load Activity Stream in a separate process.
if (useSeparatePrivilegedContentProcess &&
ACTIVITY_STREAM_PAGES.has(aURI.filePath)) {
if ((flags & Ci.nsIAboutModule.URI_CAN_LOAD_IN_PRIVILEGED_CHILD) &&
useSeparatePrivilegedContentProcess) {
return PRIVILEGED_REMOTE_TYPE;
}
return DEFAULT_REMOTE_TYPE;
Expand Down

0 comments on commit c049bbe

Please sign in to comment.