Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(103)

Side by Side Diff: chrome/browser/profiles/profile_impl.cc

Issue 381283002: Refactor code that defers extension background page loading (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: larger DeferLoadingBackgroundHosts Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <vector> 7 #include <vector>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/callback.h" 10 #include "base/callback.h"
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
167 167
168 // Value written to prefs for EXIT_CRASHED and EXIT_SESSION_ENDED. 168 // Value written to prefs for EXIT_CRASHED and EXIT_SESSION_ENDED.
169 const char* const kPrefExitTypeCrashed = "Crashed"; 169 const char* const kPrefExitTypeCrashed = "Crashed";
170 const char* const kPrefExitTypeSessionEnded = "SessionEnded"; 170 const char* const kPrefExitTypeSessionEnded = "SessionEnded";
171 171
172 // Helper method needed because PostTask cannot currently take a Callback 172 // Helper method needed because PostTask cannot currently take a Callback
173 // function with non-void return type. 173 // function with non-void return type.
174 void CreateDirectoryAndSignal(const base::FilePath& path, 174 void CreateDirectoryAndSignal(const base::FilePath& path,
175 base::WaitableEvent* done_creating) { 175 base::WaitableEvent* done_creating) {
176 DVLOG(1) << "Creating directory " << path.value(); 176 DVLOG(1) << "Creating directory " << path.value();
177 LOG(ERROR) << "JAMES sleeping on create directory";
178 base::PlatformThread::Sleep(base::TimeDelta::FromSeconds(5));
177 base::CreateDirectory(path); 179 base::CreateDirectory(path);
178 done_creating->Signal(); 180 done_creating->Signal();
179 } 181 }
180 182
181 // Task that blocks the FILE thread until CreateDirectoryAndSignal() finishes on 183 // Task that blocks the FILE thread until CreateDirectoryAndSignal() finishes on
182 // blocking I/O pool. 184 // blocking I/O pool.
183 void BlockFileThreadOnDirectoryCreate(base::WaitableEvent* done_creating) { 185 void BlockFileThreadOnDirectoryCreate(base::WaitableEvent* done_creating) {
184 done_creating->Wait(); 186 done_creating->Wait();
185 } 187 }
186 188
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
273 "profile_path", 275 "profile_path",
274 path.value().c_str()); 276 path.value().c_str());
275 277
276 // Get sequenced task runner for making sure that file operations of 278 // Get sequenced task runner for making sure that file operations of
277 // this profile (defined by |path|) are executed in expected order 279 // this profile (defined by |path|) are executed in expected order
278 // (what was previously assured by the FILE thread). 280 // (what was previously assured by the FILE thread).
279 scoped_refptr<base::SequencedTaskRunner> sequenced_task_runner = 281 scoped_refptr<base::SequencedTaskRunner> sequenced_task_runner =
280 JsonPrefStore::GetTaskRunnerForFile(path, 282 JsonPrefStore::GetTaskRunnerForFile(path,
281 BrowserThread::GetBlockingPool()); 283 BrowserThread::GetBlockingPool());
282 if (create_mode == CREATE_MODE_ASYNCHRONOUS) { 284 if (create_mode == CREATE_MODE_ASYNCHRONOUS) {
285 LOG(ERROR) << "JAMES create profile async";
283 DCHECK(delegate); 286 DCHECK(delegate);
284 CreateProfileDirectory(sequenced_task_runner.get(), path); 287 CreateProfileDirectory(sequenced_task_runner.get(), path);
285 } else if (create_mode == CREATE_MODE_SYNCHRONOUS) { 288 } else if (create_mode == CREATE_MODE_SYNCHRONOUS) {
286 if (!base::PathExists(path)) { 289 if (!base::PathExists(path)) {
287 // TODO(tc): http://b/1094718 Bad things happen if we can't write to the 290 // TODO(tc): http://b/1094718 Bad things happen if we can't write to the
288 // profile directory. We should eventually be able to run in this 291 // profile directory. We should eventually be able to run in this
289 // situation. 292 // situation.
290 if (!base::CreateDirectory(path)) 293 if (!base::CreateDirectory(path))
291 return NULL; 294 return NULL;
292 } 295 }
(...skipping 346 matching lines...) Expand 10 before | Expand all | Expand 10 after
639 true)) { 642 true)) {
640 return; 643 return;
641 } 644 }
642 #endif 645 #endif
643 646
644 if (delegate_) { 647 if (delegate_) {
645 TRACE_EVENT0("browser", "ProfileImpl::DoFileInit:DelegateOnProfileCreated") 648 TRACE_EVENT0("browser", "ProfileImpl::DoFileInit:DelegateOnProfileCreated")
646 delegate_->OnProfileCreated(this, true, IsNewProfile()); 649 delegate_->OnProfileCreated(this, true, IsNewProfile());
647 } 650 }
648 651
652 LOG(ERROR) << "JAMES send profile created";
649 content::NotificationService::current()->Notify( 653 content::NotificationService::current()->Notify(
650 chrome::NOTIFICATION_PROFILE_CREATED, 654 chrome::NOTIFICATION_PROFILE_CREATED,
651 content::Source<Profile>(this), 655 content::Source<Profile>(this),
652 content::NotificationService::NoDetails()); 656 content::NotificationService::NoDetails());
653 657
654 #if !defined(OS_CHROMEOS) 658 #if !defined(OS_CHROMEOS)
655 // Listen for bookmark model load, to bootstrap the sync service. 659 // Listen for bookmark model load, to bootstrap the sync service.
656 // On CrOS sync service will be initialized after sign in. 660 // On CrOS sync service will be initialized after sign in.
657 BookmarkModel* model = BookmarkModelFactory::GetForProfile(this); 661 BookmarkModel* model = BookmarkModelFactory::GetForProfile(this);
658 model->AddObserver(new BookmarkModelLoadedObserver(this)); 662 model->AddObserver(new BookmarkModelLoadedObserver(this));
(...skipping 664 matching lines...) Expand 10 before | Expand all | Expand 10 after
1323 ProfileImpl::CreateDomainReliabilityMonitor() { 1327 ProfileImpl::CreateDomainReliabilityMonitor() {
1324 domain_reliability::DomainReliabilityService* service = 1328 domain_reliability::DomainReliabilityService* service =
1325 domain_reliability::DomainReliabilityServiceFactory::GetInstance()-> 1329 domain_reliability::DomainReliabilityServiceFactory::GetInstance()->
1326 GetForBrowserContext(this); 1330 GetForBrowserContext(this);
1327 if (!service) 1331 if (!service)
1328 return scoped_ptr<domain_reliability::DomainReliabilityMonitor>(); 1332 return scoped_ptr<domain_reliability::DomainReliabilityMonitor>();
1329 1333
1330 return service->CreateMonitor( 1334 return service->CreateMonitor(
1331 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO)); 1335 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO));
1332 } 1336 }
OLDNEW
« no previous file with comments | « chrome/browser/profiles/profile.cc ('k') | extensions/DEPS » ('j') | extensions/DEPS » ('J')

Powered by Google App Engine
This is Rietveld 408576698