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/profiles/profile_impl.h" | 5 #include "chrome/browser/profiles/profile_impl.h" |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/compiler_specific.h" | 8 #include "base/compiler_specific.h" |
9 #include "base/environment.h" | 9 #include "base/environment.h" |
10 #include "base/file_path.h" | 10 #include "base/file_path.h" |
(...skipping 798 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
809 // TODO(eroman): this isn't terribly useful anymore now that the | 809 // TODO(eroman): this isn't terribly useful anymore now that the |
810 // net::URLRequestContext is constructed by the IO thread... | 810 // net::URLRequestContext is constructed by the IO thread... |
811 NotificationService::current()->Notify( | 811 NotificationService::current()->Notify( |
812 NotificationType::DEFAULT_REQUEST_CONTEXT_AVAILABLE, | 812 NotificationType::DEFAULT_REQUEST_CONTEXT_AVAILABLE, |
813 NotificationService::AllSources(), NotificationService::NoDetails()); | 813 NotificationService::AllSources(), NotificationService::NoDetails()); |
814 } | 814 } |
815 | 815 |
816 return request_context; | 816 return request_context; |
817 } | 817 } |
818 | 818 |
819 URLRequestContextGetter* ProfileImpl::GetRequestContextForPossibleApp( | |
820 const Extension* installed_app) { | |
821 if (CommandLine::ForCurrentProcess()->HasSwitch( | |
822 switches::kEnableExperimentalAppManifests) && | |
823 installed_app != NULL && | |
824 installed_app->is_storage_isolated()) | |
825 return GetRequestContextForIsolatedApp(installed_app); | |
826 | |
827 return GetRequestContext(); | |
828 } | |
829 | |
819 URLRequestContextGetter* ProfileImpl::GetRequestContextForMedia() { | 830 URLRequestContextGetter* ProfileImpl::GetRequestContextForMedia() { |
820 return io_data_.GetMediaRequestContextGetter(); | 831 return io_data_.GetMediaRequestContextGetter(); |
821 } | 832 } |
822 | 833 |
823 FaviconService* ProfileImpl::GetFaviconService(ServiceAccessType sat) { | 834 FaviconService* ProfileImpl::GetFaviconService(ServiceAccessType sat) { |
824 if (!favicon_service_created_) { | 835 if (!favicon_service_created_) { |
825 favicon_service_created_ = true; | 836 favicon_service_created_ = true; |
826 scoped_refptr<FaviconService> service(new FaviconService(this)); | 837 scoped_refptr<FaviconService> service(new FaviconService(this)); |
827 favicon_service_.swap(service); | 838 favicon_service_.swap(service); |
828 } | 839 } |
829 return favicon_service_.get(); | 840 return favicon_service_.get(); |
830 } | 841 } |
831 | 842 |
832 URLRequestContextGetter* ProfileImpl::GetRequestContextForExtensions() { | 843 URLRequestContextGetter* ProfileImpl::GetRequestContextForExtensions() { |
833 return io_data_.GetExtensionsRequestContextGetter(); | 844 return io_data_.GetExtensionsRequestContextGetter(); |
834 } | 845 } |
835 | 846 |
847 URLRequestContextGetter* ProfileImpl::GetRequestContextForIsolatedApp( | |
848 const Extension* installed_app) { | |
849 // Create a request context specific to this app on demand. | |
850 FilePath app_path = GetPath().Append(chrome::kIsolatedAppStateDirname); | |
willchan no longer on Chromium
2011/03/03 18:16:59
How about add app_path as a parameter to the Handl
Charlie Reis
2011/03/04 22:34:53
Fixed. Much cleaner.
| |
851 app_path = app_path.AppendASCII(installed_app->id()); | |
852 FilePath cookie_path = app_path.Append(chrome::kCookieFilename); | |
853 FilePath cache_path = app_path.Append(chrome::kCacheDirname); | |
854 | |
855 // Create the paths if they don't yet exist. | |
856 BrowserThread::PostTask( | |
857 BrowserThread::FILE, FROM_HERE, | |
858 NewRunnableFunction(&ProfileImpl::CreateIsolatedAppPaths, | |
Matt Perry
2011/03/03 22:59:21
Are these paths accessed only on the file thread?
Charlie Reis
2011/03/04 22:34:53
I was under the impression all file I/O had to be
Charlie Reis
2011/03/04 23:49:41
Hmm, looks like you may be right, Matt:
http://bui
Matt Perry
2011/03/04 23:53:53
I think you might just have to do it earlier in st
Charlie Reis
2011/03/08 00:56:48
I'm uneasy about creating the path when the app is
Charlie Reis
2011/03/08 02:34:04
Ugh. It's a known issue and isn't likely to be fi
Charlie Reis
2011/03/08 20:44:41
Chatted with rdsmith@, and we agreed that the dire
| |
859 app_path, | |
860 cache_path)); | |
861 | |
862 // Initialize the app context IO data on demand. | |
863 // TODO(creis): Determine the correct cache size. | |
864 io_data_.InitIsolatedApp(installed_app, cookie_path, cache_path, 0); | |
865 | |
866 return io_data_.GetIsolatedAppRequestContextGetter(installed_app); | |
867 } | |
868 | |
869 void ProfileImpl::CreateIsolatedAppPaths(const FilePath& app_path, | |
870 const FilePath& cache_path) { | |
871 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); | |
872 file_util::CreateDirectory(app_path); | |
873 file_util::CreateDirectory(cache_path); | |
874 } | |
875 | |
836 void ProfileImpl::RegisterExtensionWithRequestContexts( | 876 void ProfileImpl::RegisterExtensionWithRequestContexts( |
837 const Extension* extension) { | 877 const Extension* extension) { |
838 // AddRef to ensure the data lives until the other thread gets it. Balanced in | 878 // AddRef to ensure the data lives until the other thread gets it. Balanced in |
839 // OnNewExtensions. | 879 // OnNewExtensions. |
840 extension->AddRef(); | 880 extension->AddRef(); |
841 BrowserThread::PostTask( | 881 BrowserThread::PostTask( |
842 BrowserThread::IO, FROM_HERE, | 882 BrowserThread::IO, FROM_HERE, |
843 NewRunnableMethod(extension_info_map_.get(), | 883 NewRunnableMethod(extension_info_map_.get(), |
844 &ExtensionInfoMap::AddExtension, | 884 &ExtensionInfoMap::AddExtension, |
845 extension)); | 885 extension)); |
(...skipping 683 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1529 return pref_proxy_config_tracker_; | 1569 return pref_proxy_config_tracker_; |
1530 } | 1570 } |
1531 | 1571 |
1532 prerender::PrerenderManager* ProfileImpl::GetPrerenderManager() { | 1572 prerender::PrerenderManager* ProfileImpl::GetPrerenderManager() { |
1533 if (!prerender::PrerenderManager::IsPrerenderingEnabled()) | 1573 if (!prerender::PrerenderManager::IsPrerenderingEnabled()) |
1534 return NULL; | 1574 return NULL; |
1535 if (!prerender_manager_) | 1575 if (!prerender_manager_) |
1536 prerender_manager_ = new prerender::PrerenderManager(this); | 1576 prerender_manager_ = new prerender::PrerenderManager(this); |
1537 return prerender_manager_; | 1577 return prerender_manager_; |
1538 } | 1578 } |
OLD | NEW |