| Index: content/shell/browser/shell_content_browser_client.cc
|
| diff --git a/content/shell/browser/shell_content_browser_client.cc b/content/shell/browser/shell_content_browser_client.cc
|
| index 8b0ca65cc15b709967a2ead352aa7906b76db481..19a60b67aea2a05029a284a0cc045d84558ae284 100644
|
| --- a/content/shell/browser/shell_content_browser_client.cc
|
| +++ b/content/shell/browser/shell_content_browser_client.cc
|
| @@ -9,6 +9,7 @@
|
| #include "base/files/file.h"
|
| #include "base/files/file_util.h"
|
| #include "base/path_service.h"
|
| +#include "base/strings/pattern.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "content/public/browser/client_certificate_delegate.h"
|
| #include "content/public/browser/page_navigator.h"
|
| @@ -35,6 +36,7 @@
|
| #include "content/shell/common/shell_switches.h"
|
| #include "net/url_request/url_request_context_getter.h"
|
| #include "url/gurl.h"
|
| +#include "url/origin.h"
|
|
|
| #if defined(OS_ANDROID)
|
| #include "base/android/apk_assets.h"
|
| @@ -146,6 +148,19 @@ BrowserMainParts* ShellContentBrowserClient::CreateBrowserMainParts(
|
| return shell_browser_main_parts_;
|
| }
|
|
|
| +bool ShellContentBrowserClient::DoesSiteRequireDedicatedProcess(
|
| + BrowserContext* browser_context,
|
| + const GURL& effective_url) {
|
| + base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
|
| + DCHECK(command_line->HasSwitch(switches::kIsolateSitesForTesting));
|
| + std::string pattern =
|
| + command_line->GetSwitchValueASCII(switches::kIsolateSitesForTesting);
|
| + // Practically |origin| is the same as |effective_url.spec()|, except Origin
|
| + // serialization strips the trailing "/", which makes for cleaner patterns.
|
| + std::string origin = url::Origin(effective_url).Serialize();
|
| + return base::MatchPattern(origin, pattern);
|
| +}
|
| +
|
| net::URLRequestContextGetter* ShellContentBrowserClient::CreateRequestContext(
|
| BrowserContext* content_browser_context,
|
| ProtocolHandlerMap* protocol_handlers,
|
| @@ -252,6 +267,13 @@ void ShellContentBrowserClient::AppendExtraCommandLineSwitches(
|
| switches::kEnableLeakDetection));
|
| }
|
| if (base::CommandLine::ForCurrentProcess()->HasSwitch(
|
| + switches::kIsolateSitesForTesting)) {
|
| + command_line->AppendSwitchASCII(
|
| + switches::kIsolateSitesForTesting,
|
| + base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
|
| + switches::kIsolateSitesForTesting));
|
| + }
|
| + if (base::CommandLine::ForCurrentProcess()->HasSwitch(
|
| switches::kRegisterFontFiles)) {
|
| command_line->AppendSwitchASCII(
|
| switches::kRegisterFontFiles,
|
|
|