OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/chrome_content_browser_client.h" | 5 #include "chrome/browser/chrome_content_browser_client.h" |
6 | 6 |
7 #include <set> | 7 #include <set> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 380 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
391 } | 391 } |
392 | 392 |
393 bool ChromeContentBrowserClient::IsSuitableHost( | 393 bool ChromeContentBrowserClient::IsSuitableHost( |
394 RenderProcessHost* process_host, | 394 RenderProcessHost* process_host, |
395 const GURL& site_url) { | 395 const GURL& site_url) { |
396 Profile* profile = | 396 Profile* profile = |
397 Profile::FromBrowserContext(process_host->browser_context()); | 397 Profile::FromBrowserContext(process_host->browser_context()); |
398 ExtensionService* service = profile->GetExtensionService(); | 398 ExtensionService* service = profile->GetExtensionService(); |
399 extensions::ProcessMap* process_map = service->process_map(); | 399 extensions::ProcessMap* process_map = service->process_map(); |
400 | 400 |
| 401 // Don't allow the Task Manager to share a process with anything else. |
| 402 // Otherwise it can affect the renderers it is observing. |
| 403 // Note: we could create another RenderProcessHostPrivilege bucket for |
| 404 // this to allow multiple chrome://tasks instances to share, but that's |
| 405 // a very unlikely case without serious consequences. |
| 406 if (site_url.GetOrigin() == GURL(chrome::kChromeUITaskManagerURL).GetOrigin()) |
| 407 return false; |
| 408 |
401 // These may be NULL during tests. In that case, just assume any site can | 409 // These may be NULL during tests. In that case, just assume any site can |
402 // share any host. | 410 // share any host. |
403 if (!service || !process_map) | 411 if (!service || !process_map) |
404 return true; | 412 return true; |
405 | 413 |
406 // Experimental: | 414 // Experimental: |
407 // If --enable-strict-site-isolation is enabled, do not allow non-WebUI pages | 415 // If --enable-strict-site-isolation is enabled, do not allow non-WebUI pages |
408 // to share a renderer process. (We could allow pages from the same site or | 416 // to share a renderer process. (We could allow pages from the same site or |
409 // extensions of the same type to share, if we knew what the given process | 417 // extensions of the same type to share, if we knew what the given process |
410 // was dedicated to. Allowing no sharing is simpler for now.) This may | 418 // was dedicated to. Allowing no sharing is simpler for now.) This may |
(...skipping 702 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1113 #if defined(USE_NSS) | 1121 #if defined(USE_NSS) |
1114 crypto::CryptoModuleBlockingPasswordDelegate* | 1122 crypto::CryptoModuleBlockingPasswordDelegate* |
1115 ChromeContentBrowserClient::GetCryptoPasswordDelegate( | 1123 ChromeContentBrowserClient::GetCryptoPasswordDelegate( |
1116 const GURL& url) { | 1124 const GURL& url) { |
1117 return browser::NewCryptoModuleBlockingDialogDelegate( | 1125 return browser::NewCryptoModuleBlockingDialogDelegate( |
1118 browser::kCryptoModulePasswordKeygen, url.host()); | 1126 browser::kCryptoModulePasswordKeygen, url.host()); |
1119 } | 1127 } |
1120 #endif | 1128 #endif |
1121 | 1129 |
1122 } // namespace chrome | 1130 } // namespace chrome |
OLD | NEW |