diff options
-rw-r--r-- | content/browser/appcache/appcache_update_job.cc | 11 | ||||
-rw-r--r-- | content/browser/appcache/appcache_update_job.h | 2 | ||||
-rw-r--r-- | content/browser/appcache/appcache_update_job_unittest.cc | 34 |
3 files changed, 10 insertions, 37 deletions
diff --git a/content/browser/appcache/appcache_update_job.cc b/content/browser/appcache/appcache_update_job.cc index b5d29a9..4b21286 100644 --- a/content/browser/appcache/appcache_update_job.cc +++ b/content/browser/appcache/appcache_update_job.cc @@ -7,11 +7,12 @@ #include "base/bind.h" #include "base/bind_helpers.h" #include "base/compiler_specific.h" -#include "base/message_loop/message_loop.h" #include "base/strings/string_util.h" #include "base/strings/stringprintf.h" +#include "base/thread_task_runner_handle.h" #include "content/browser/appcache/appcache_group.h" #include "content/browser/appcache/appcache_histograms.h" +#include "content/public/browser/browser_thread.h" #include "net/base/io_buffer.h" #include "net/base/load_flags.h" #include "net/base/net_errors.h" @@ -360,7 +361,8 @@ AppCacheUpdateJob::AppCacheUpdateJob(AppCacheServiceImpl* service, manifest_fetcher_(NULL), manifest_has_valid_mime_type_(false), stored_state_(UNSTORED), - storage_(service->storage()) { + storage_(service->storage()), + weak_factory_(this) { service_->AddObserver(this); } @@ -440,7 +442,10 @@ void AppCacheUpdateJob::StartUpdate(AppCacheHost* host, is_new_pending_master_entry); } - FetchManifest(true); + BrowserThread::PostAfterStartupTask( + FROM_HERE, base::ThreadTaskRunnerHandle::Get(), + base::Bind(&AppCacheUpdateJob::FetchManifest, weak_factory_.GetWeakPtr(), + true)); } AppCacheResponseWriter* AppCacheUpdateJob::CreateResponseWriter() { diff --git a/content/browser/appcache/appcache_update_job.h b/content/browser/appcache/appcache_update_job.h index 4d2d896..8dfd153 100644 --- a/content/browser/appcache/appcache_update_job.h +++ b/content/browser/appcache/appcache_update_job.h @@ -13,6 +13,7 @@ #include "base/gtest_prod_util.h" #include "base/memory/ref_counted.h" +#include "base/memory/weak_ptr.h" #include "base/time/time.h" #include "content/browser/appcache/appcache.h" #include "content/browser/appcache/appcache_host.h" @@ -335,6 +336,7 @@ class CONTENT_EXPORT AppCacheUpdateJob StoredState stored_state_; AppCacheStorage* storage_; + base::WeakPtrFactory<AppCacheUpdateJob> weak_factory_; FRIEND_TEST_ALL_PREFIXES(content::AppCacheGroupTest, QueueUpdate); diff --git a/content/browser/appcache/appcache_update_job_unittest.cc b/content/browser/appcache/appcache_update_job_unittest.cc index 4955a71..b69af52 100644 --- a/content/browser/appcache/appcache_update_job_unittest.cc +++ b/content/browser/appcache/appcache_update_job_unittest.cc @@ -724,9 +724,6 @@ class AppCacheUpdateJobTest : public testing::Test, MockFrontend* frontend = MakeMockFrontend(); AppCacheHost* host = MakeHost(1, frontend); update->StartUpdate(host, GURL()); - EXPECT_TRUE(update->manifest_fetcher_ != NULL); - - update->manifest_fetcher_->request()->CancelWithError(-100); // Set up checks for when update job finishes. do_checks_after_update_finished_ = true; @@ -757,9 +754,6 @@ class AppCacheUpdateJobTest : public testing::Test, host2->AssociateCompleteCache(cache); update->StartUpdate(NULL, GURL()); - EXPECT_TRUE(update->manifest_fetcher_ != NULL); - - update->manifest_fetcher_->request()->CancelWithError(-100); // Set up checks for when update job finishes. do_checks_after_update_finished_ = true; @@ -794,7 +788,6 @@ class AppCacheUpdateJobTest : public testing::Test, MockFrontend* frontend = MakeMockFrontend(); AppCacheHost* host = MakeHost(1, frontend); update->StartUpdate(host, GURL()); - EXPECT_TRUE(update->manifest_fetcher_ != NULL); // Set up checks for when update job finishes. do_checks_after_update_finished_ = true; @@ -826,7 +819,6 @@ class AppCacheUpdateJobTest : public testing::Test, frontend->SetVerifyProgressEvents(true); update->StartUpdate(NULL, GURL()); - EXPECT_TRUE(update->manifest_fetcher_ != NULL); // Set up checks for when update job finishes. do_checks_after_update_finished_ = true; @@ -864,7 +856,6 @@ class AppCacheUpdateJobTest : public testing::Test, host2->AssociateCompleteCache(cache); update->StartUpdate(NULL, GURL()); - EXPECT_TRUE(update->manifest_fetcher_ != NULL); // Set up checks for when update job finishes. do_checks_after_update_finished_ = true; @@ -895,7 +886,6 @@ class AppCacheUpdateJobTest : public testing::Test, MockFrontend* frontend = MakeMockFrontend(); AppCacheHost* host = MakeHost(1, frontend); update->StartUpdate(host, GURL()); - EXPECT_TRUE(update->manifest_fetcher_ != NULL); // Set up checks for when update job finishes. do_checks_after_update_finished_ = true; @@ -921,7 +911,6 @@ class AppCacheUpdateJobTest : public testing::Test, MockFrontend* frontend = MakeMockFrontend(); AppCacheHost* host = MakeHost(1, frontend); update->StartUpdate(host, GURL()); - EXPECT_TRUE(update->manifest_fetcher_ != NULL); // Set up checks for when update job finishes. do_checks_after_update_finished_ = true; @@ -953,7 +942,6 @@ class AppCacheUpdateJobTest : public testing::Test, host2->AssociateCompleteCache(cache); update->StartUpdate(NULL, GURL()); - EXPECT_TRUE(update->manifest_fetcher_ != NULL); // Set up checks for when update job finishes. do_checks_after_update_finished_ = true; @@ -1040,7 +1028,6 @@ class AppCacheUpdateJobTest : public testing::Test, host->AssociateCompleteCache(cache); update->StartUpdate(NULL, GURL()); - EXPECT_TRUE(update->manifest_fetcher_ != NULL); // Set up checks for when update job finishes. do_checks_after_update_finished_ = true; @@ -1061,7 +1048,6 @@ class AppCacheUpdateJobTest : public testing::Test, AppCacheUpdateJob* update = group_->update_job_; update->StartUpdate(NULL, GURL()); - EXPECT_TRUE(update->manifest_fetcher_ != NULL); WaitForUpdateToFinish(); } @@ -1391,7 +1377,6 @@ class AppCacheUpdateJobTest : public testing::Test, AppCacheEntry(AppCacheEntry::MASTER, 111)); update->StartUpdate(NULL, GURL()); - EXPECT_TRUE(update->manifest_fetcher_ != NULL); // Set up checks for when update job finishes. do_checks_after_update_finished_ = true; @@ -1431,7 +1416,6 @@ class AppCacheUpdateJobTest : public testing::Test, MockFrontend* frontend = MakeMockFrontend(); AppCacheHost* host = MakeHost(1, frontend); update->StartUpdate(host, GURL()); - EXPECT_TRUE(update->manifest_fetcher_ != NULL); // Set up checks for when update job finishes. do_checks_after_update_finished_ = true; @@ -1465,7 +1449,6 @@ class AppCacheUpdateJobTest : public testing::Test, host2->AssociateCompleteCache(cache); update->StartUpdate(NULL, GURL()); - EXPECT_TRUE(update->manifest_fetcher_ != NULL); // Set up checks for when update job finishes. do_checks_after_update_finished_ = true; @@ -1533,7 +1516,6 @@ class AppCacheUpdateJobTest : public testing::Test, MakeAppCacheResponseInfo(kManifestUrl, 555, kRawHeaders); update->StartUpdate(NULL, GURL()); - EXPECT_TRUE(update->manifest_fetcher_ != NULL); // Set up checks for when update job finishes. do_checks_after_update_finished_ = true; @@ -1602,7 +1584,6 @@ class AppCacheUpdateJobTest : public testing::Test, frontend1->SetVerifyProgressEvents(true); update->StartUpdate(NULL, GURL()); - EXPECT_TRUE(update->manifest_fetcher_ != NULL); // Set up checks for when update job finishes. do_checks_after_update_finished_ = true; @@ -1642,7 +1623,6 @@ class AppCacheUpdateJobTest : public testing::Test, frontend->SetVerifyProgressEvents(true); update->StartUpdate(host, GURL()); - EXPECT_TRUE(update->manifest_fetcher_ != NULL); // Set up checks for when update job finishes. do_checks_after_update_finished_ = true; @@ -1681,7 +1661,6 @@ class AppCacheUpdateJobTest : public testing::Test, MockFrontend* frontend = MakeMockFrontend(); AppCacheHost* host = MakeHost(1, frontend); update->StartUpdate(host, GURL()); - EXPECT_TRUE(update->manifest_fetcher_ != NULL); // Set up checks for when update job finishes. do_checks_after_update_finished_ = true; @@ -1715,7 +1694,6 @@ class AppCacheUpdateJobTest : public testing::Test, MockFrontend* frontend = MakeMockFrontend(); AppCacheHost* host = MakeHost(1, frontend); update->StartUpdate(host, GURL()); - EXPECT_TRUE(update->manifest_fetcher_ != NULL); // Set up checks for when update job finishes. do_checks_after_update_finished_ = true; @@ -1750,7 +1728,6 @@ class AppCacheUpdateJobTest : public testing::Test, MockFrontend* frontend = MakeMockFrontend(); AppCacheHost* host = MakeHost(1, frontend); update->StartUpdate(host, GURL()); - EXPECT_TRUE(update->manifest_fetcher_ != NULL); // Set up checks for when update job finishes. do_checks_after_update_finished_ = true; @@ -1784,7 +1761,6 @@ class AppCacheUpdateJobTest : public testing::Test, MockFrontend* frontend = MakeMockFrontend(); AppCacheHost* host = MakeHost(1, frontend); update->StartUpdate(host, GURL()); - EXPECT_TRUE(update->manifest_fetcher_ != NULL); // Set up checks for when update job finishes. do_checks_after_update_finished_ = true; @@ -1817,7 +1793,6 @@ class AppCacheUpdateJobTest : public testing::Test, MockFrontend* frontend = MakeMockFrontend(); AppCacheHost* host = MakeHost(1, frontend); update->StartUpdate(host, GURL()); - EXPECT_TRUE(update->manifest_fetcher_ != NULL); // Set up checks for when update job finishes. do_checks_after_update_finished_ = true; @@ -1978,7 +1953,6 @@ class AppCacheUpdateJobTest : public testing::Test, host2->AssociateCompleteCache(cache); update->StartUpdate(NULL, GURL()); - EXPECT_TRUE(update->manifest_fetcher_ != NULL); // Set up checks for when update job finishes. do_checks_after_update_finished_ = true; @@ -2008,9 +1982,6 @@ class AppCacheUpdateJobTest : public testing::Test, AppCacheHost* host = MakeHost(1, frontend); host->new_master_entry_url_ = GURL("http://failme/blah"); update->StartUpdate(host, host->new_master_entry_url_); - EXPECT_TRUE(update->manifest_fetcher_ != NULL); - - update->manifest_fetcher_->request()->CancelWithError(-100); // Set up checks for when update job finishes. do_checks_after_update_finished_ = true; @@ -2037,7 +2008,6 @@ class AppCacheUpdateJobTest : public testing::Test, AppCacheHost* host = MakeHost(1, frontend); host->new_master_entry_url_ = MockHttpServer::GetMockUrl("files/blah"); update->StartUpdate(host, host->new_master_entry_url_); - EXPECT_TRUE(update->manifest_fetcher_ != NULL); // Set up checks for when update job finishes. do_checks_after_update_finished_ = true; @@ -2067,7 +2037,6 @@ class AppCacheUpdateJobTest : public testing::Test, host->new_master_entry_url_ = MockHttpServer::GetMockUrl("files/blah"); update->StartUpdate(host, host->new_master_entry_url_); - EXPECT_TRUE(update->manifest_fetcher_ != NULL); // Set up checks for when update job finishes. do_checks_after_update_finished_ = true; @@ -2097,7 +2066,6 @@ class AppCacheUpdateJobTest : public testing::Test, MockHttpServer::GetMockUrl("files/explicit1"); update->StartUpdate(host, host->new_master_entry_url_); - EXPECT_TRUE(update->manifest_fetcher_ != NULL); // Set up checks for when update job finishes. do_checks_after_update_finished_ = true; @@ -2386,7 +2354,6 @@ class AppCacheUpdateJobTest : public testing::Test, host1->new_master_entry_url_ = MockHttpServer::GetMockUrl("files/explicit2"); update->StartUpdate(host1, host1->new_master_entry_url_); - EXPECT_TRUE(update->manifest_fetcher_ != NULL); // Set up additional updates to be started while update is in progress. MockFrontend* frontend2 = MakeMockFrontend(); @@ -2484,7 +2451,6 @@ class AppCacheUpdateJobTest : public testing::Test, host2->new_master_entry_url_ = MockHttpServer::GetMockUrl("files/nosuchfile"); update->StartUpdate(host2, host2->new_master_entry_url_); - EXPECT_TRUE(update->manifest_fetcher_ != NULL); // Set up additional updates to be started while update is in progress. MockFrontend* frontend3 = MakeMockFrontend(); |