| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 "webkit/tools/test_shell/simple_appcache_system.h" | 5 #include "webkit/tools/test_shell/simple_appcache_system.h" |
| 6 | 6 |
| 7 #include "base/callback.h" | 7 #include "base/callback.h" |
| 8 #include "base/lock.h" | 8 #include "base/lock.h" |
| 9 #include "base/task.h" | 9 #include "base/task.h" |
| 10 #include "base/waitable_event.h" | 10 #include "base/waitable_event.h" |
| (...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 324 if (db_thread_.IsRunning()) { | 324 if (db_thread_.IsRunning()) { |
| 325 // We pump a task thru the db thread to ensure any tasks previously | 325 // We pump a task thru the db thread to ensure any tasks previously |
| 326 // scheduled on that thread have been performed prior to return. | 326 // scheduled on that thread have been performed prior to return. |
| 327 base::WaitableEvent event(false, false); | 327 base::WaitableEvent event(false, false); |
| 328 db_thread_.message_loop()->PostTask(FROM_HERE, | 328 db_thread_.message_loop()->PostTask(FROM_HERE, |
| 329 NewRunnableFunction(&SignalEvent, &event)); | 329 NewRunnableFunction(&SignalEvent, &event)); |
| 330 event.Wait(); | 330 event.Wait(); |
| 331 } | 331 } |
| 332 } | 332 } |
| 333 | 333 |
| 334 void SimpleAppCacheSystem::InitOnUIThread( | 334 void SimpleAppCacheSystem::InitOnUIThread(const FilePath& cache_directory) { |
| 335 const FilePath& cache_directory) { | |
| 336 DCHECK(!ui_message_loop_); | 335 DCHECK(!ui_message_loop_); |
| 337 // TODO(michaeln): provide a cache_thread message loop | 336 AppCacheThread::Init(DB_THREAD_ID, IO_THREAD_ID); |
| 338 AppCacheThread::Init(DB_THREAD_ID, IO_THREAD_ID, NULL); | |
| 339 ui_message_loop_ = MessageLoop::current(); | 337 ui_message_loop_ = MessageLoop::current(); |
| 340 cache_directory_ = cache_directory; | 338 cache_directory_ = cache_directory; |
| 341 } | 339 } |
| 342 | 340 |
| 343 void SimpleAppCacheSystem::InitOnIOThread(URLRequestContext* request_context) { | 341 void SimpleAppCacheSystem::InitOnIOThread(URLRequestContext* request_context) { |
| 344 if (!is_initailized_on_ui_thread()) | 342 if (!is_initailized_on_ui_thread()) |
| 345 return; | 343 return; |
| 346 | 344 |
| 347 DCHECK(!io_message_loop_); | 345 DCHECK(!io_message_loop_); |
| 348 io_message_loop_ = MessageLoop::current(); | 346 io_message_loop_ = MessageLoop::current(); |
| 349 io_message_loop_->AddDestructionObserver(this); | 347 io_message_loop_->AddDestructionObserver(this); |
| 350 | 348 |
| 351 if (!db_thread_.IsRunning()) | 349 if (!db_thread_.IsRunning()) |
| 352 db_thread_.Start(); | 350 db_thread_.Start(); |
| 353 | 351 |
| 354 // Recreate and initialize per each IO thread. | 352 // Recreate and initialize per each IO thread. |
| 355 service_ = new appcache::AppCacheService(); | 353 service_ = new appcache::AppCacheService(); |
| 356 backend_impl_ = new appcache::AppCacheBackendImpl(); | 354 backend_impl_ = new appcache::AppCacheBackendImpl(); |
| 357 service_->Initialize(cache_directory_); | 355 service_->Initialize(cache_directory_, |
| 356 SimpleResourceLoaderBridge::GetCacheThread()); |
| 358 service_->set_request_context(request_context); | 357 service_->set_request_context(request_context); |
| 359 backend_impl_->Initialize(service_, frontend_proxy_.get(), kSingleProcessId); | 358 backend_impl_->Initialize(service_, frontend_proxy_.get(), kSingleProcessId); |
| 360 | 359 |
| 361 AppCacheInterceptor::EnsureRegistered(); | 360 AppCacheInterceptor::EnsureRegistered(); |
| 362 } | 361 } |
| 363 | 362 |
| 364 WebApplicationCacheHost* SimpleAppCacheSystem::CreateCacheHostForWebKit( | 363 WebApplicationCacheHost* SimpleAppCacheSystem::CreateCacheHostForWebKit( |
| 365 WebApplicationCacheHostClient* client) { | 364 WebApplicationCacheHostClient* client) { |
| 366 if (!is_initailized_on_ui_thread()) | 365 if (!is_initailized_on_ui_thread()) |
| 367 return NULL; | 366 return NULL; |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 399 | 398 |
| 400 delete backend_impl_; | 399 delete backend_impl_; |
| 401 delete service_; | 400 delete service_; |
| 402 backend_impl_ = NULL; | 401 backend_impl_ = NULL; |
| 403 service_ = NULL; | 402 service_ = NULL; |
| 404 io_message_loop_ = NULL; | 403 io_message_loop_ = NULL; |
| 405 | 404 |
| 406 // Just in case the main thread is waiting on it. | 405 // Just in case the main thread is waiting on it. |
| 407 backend_proxy_->SignalEvent(); | 406 backend_proxy_->SignalEvent(); |
| 408 } | 407 } |
| OLD | NEW |