Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 "content/browser/appcache/appcache_storage_impl.h" | 5 #include "content/browser/appcache/appcache_storage_impl.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <functional> | 10 #include <functional> |
| (...skipping 1717 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1728 | 1728 |
| 1729 void AppCacheStorageImpl::StoreEvictionTimes(AppCacheGroup* group) { | 1729 void AppCacheStorageImpl::StoreEvictionTimes(AppCacheGroup* group) { |
| 1730 scoped_refptr<UpdateEvictionTimesTask> task( | 1730 scoped_refptr<UpdateEvictionTimesTask> task( |
| 1731 new UpdateEvictionTimesTask(this, group)); | 1731 new UpdateEvictionTimesTask(this, group)); |
| 1732 task->Schedule(); | 1732 task->Schedule(); |
| 1733 } | 1733 } |
| 1734 | 1734 |
| 1735 AppCacheResponseReader* AppCacheStorageImpl::CreateResponseReader( | 1735 AppCacheResponseReader* AppCacheStorageImpl::CreateResponseReader( |
| 1736 const GURL& manifest_url, | 1736 const GURL& manifest_url, |
| 1737 int64_t response_id) { | 1737 int64_t response_id) { |
| 1738 return new AppCacheResponseReader(response_id, disk_cache()->GetWeakPtr()); | 1738 return new AppCacheResponseReader( |
| 1739 response_id, is_disabled_ ? nullptr : disk_cache()->GetWeakPtr()); | |
| 1739 } | 1740 } |
| 1740 | 1741 |
| 1741 AppCacheResponseWriter* AppCacheStorageImpl::CreateResponseWriter( | 1742 AppCacheResponseWriter* AppCacheStorageImpl::CreateResponseWriter( |
| 1742 const GURL& manifest_url) { | 1743 const GURL& manifest_url) { |
| 1743 return new AppCacheResponseWriter(NewResponseId(), | 1744 return new AppCacheResponseWriter( |
| 1744 disk_cache()->GetWeakPtr()); | 1745 NewResponseId(), is_disabled_ ? nullptr : disk_cache()->GetWeakPtr()); |
| 1745 } | 1746 } |
| 1746 | 1747 |
| 1747 AppCacheResponseMetadataWriter* | 1748 AppCacheResponseMetadataWriter* |
| 1748 AppCacheStorageImpl::CreateResponseMetadataWriter(int64_t response_id) { | 1749 AppCacheStorageImpl::CreateResponseMetadataWriter(int64_t response_id) { |
| 1749 return new AppCacheResponseMetadataWriter(response_id, | 1750 return new AppCacheResponseMetadataWriter( |
| 1750 disk_cache()->GetWeakPtr()); | 1751 response_id, is_disabled_ ? nullptr : disk_cache()->GetWeakPtr()); |
| 1751 } | 1752 } |
| 1752 | 1753 |
| 1753 void AppCacheStorageImpl::DoomResponses( | 1754 void AppCacheStorageImpl::DoomResponses( |
| 1754 const GURL& manifest_url, | 1755 const GURL& manifest_url, |
| 1755 const std::vector<int64_t>& response_ids) { | 1756 const std::vector<int64_t>& response_ids) { |
| 1756 if (response_ids.empty()) | 1757 if (response_ids.empty()) |
| 1757 return; | 1758 return; |
| 1758 | 1759 |
| 1759 // Start deleting them from the disk cache lazily. | 1760 // Start deleting them from the disk cache lazily. |
| 1760 StartDeletingResponses(response_ids); | 1761 StartDeletingResponses(response_ids); |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1805 FROM_HERE, base::Bind(&AppCacheStorageImpl::DeleteOneResponse, | 1806 FROM_HERE, base::Bind(&AppCacheStorageImpl::DeleteOneResponse, |
| 1806 weak_factory_.GetWeakPtr()), | 1807 weak_factory_.GetWeakPtr()), |
| 1807 kBriefDelay); | 1808 kBriefDelay); |
| 1808 is_response_deletion_scheduled_ = true; | 1809 is_response_deletion_scheduled_ = true; |
| 1809 } | 1810 } |
| 1810 | 1811 |
| 1811 void AppCacheStorageImpl::DeleteOneResponse() { | 1812 void AppCacheStorageImpl::DeleteOneResponse() { |
| 1812 DCHECK(is_response_deletion_scheduled_); | 1813 DCHECK(is_response_deletion_scheduled_); |
| 1813 DCHECK(!deletable_response_ids_.empty()); | 1814 DCHECK(!deletable_response_ids_.empty()); |
| 1814 | 1815 |
| 1815 if (!disk_cache()) { | 1816 if (is_disabled_) { |
|
kinuko
2016/06/06 04:06:17
nit: !disk_cache() and is_disabled_ seems to have
nhiroki
2016/06/06 04:41:35
disk_cache() returns nullptr only if is_disabled_
kinuko
2016/06/06 04:56:21
It seems to mean disk_cache() has side-effect, is
nhiroki
2016/06/06 06:04:17
Ohh, good point! I'm not 100% sure that disk_cache
| |
| 1816 DCHECK(is_disabled_); | |
| 1817 deletable_response_ids_.clear(); | 1817 deletable_response_ids_.clear(); |
| 1818 deleted_response_ids_.clear(); | 1818 deleted_response_ids_.clear(); |
| 1819 is_response_deletion_scheduled_ = false; | 1819 is_response_deletion_scheduled_ = false; |
| 1820 return; | 1820 return; |
| 1821 } | 1821 } |
| 1822 | 1822 |
| 1823 // TODO(michaeln): add group_id to DoomEntry args | 1823 // TODO(michaeln): add group_id to DoomEntry args |
| 1824 int64_t id = deletable_response_ids_.front(); | 1824 int64_t id = deletable_response_ids_.front(); |
| 1825 int rv = disk_cache_->DoomEntry( | 1825 int rv = disk_cache_->DoomEntry( |
| 1826 id, base::Bind(&AppCacheStorageImpl::OnDeletedOneResponse, | 1826 id, base::Bind(&AppCacheStorageImpl::OnDeletedOneResponse, |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1894 | 1894 |
| 1895 void AppCacheStorageImpl::RunOnePendingSimpleTask() { | 1895 void AppCacheStorageImpl::RunOnePendingSimpleTask() { |
| 1896 DCHECK(!pending_simple_tasks_.empty()); | 1896 DCHECK(!pending_simple_tasks_.empty()); |
| 1897 base::Closure task = pending_simple_tasks_.front(); | 1897 base::Closure task = pending_simple_tasks_.front(); |
| 1898 pending_simple_tasks_.pop_front(); | 1898 pending_simple_tasks_.pop_front(); |
| 1899 task.Run(); | 1899 task.Run(); |
| 1900 } | 1900 } |
| 1901 | 1901 |
| 1902 AppCacheDiskCache* AppCacheStorageImpl::disk_cache() { | 1902 AppCacheDiskCache* AppCacheStorageImpl::disk_cache() { |
| 1903 DCHECK(IsInitTaskComplete()); | 1903 DCHECK(IsInitTaskComplete()); |
| 1904 | 1904 DCHECK(!is_disabled_); |
| 1905 if (is_disabled_) | |
| 1906 return NULL; | |
| 1907 | 1905 |
| 1908 if (!disk_cache_) { | 1906 if (!disk_cache_) { |
| 1909 int rv = net::OK; | 1907 int rv = net::OK; |
| 1910 disk_cache_.reset(new AppCacheDiskCache); | 1908 disk_cache_.reset(new AppCacheDiskCache); |
| 1911 if (is_incognito_) { | 1909 if (is_incognito_) { |
| 1912 rv = disk_cache_->InitWithMemBackend( | 1910 rv = disk_cache_->InitWithMemBackend( |
| 1913 kMaxMemDiskCacheSize, | 1911 kMaxMemDiskCacheSize, |
| 1914 base::Bind(&AppCacheStorageImpl::OnDiskCacheInitialized, | 1912 base::Bind(&AppCacheStorageImpl::OnDiskCacheInitialized, |
| 1915 base::Unretained(this))); | 1913 base::Unretained(this))); |
| 1916 } else { | 1914 } else { |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1983 | 1981 |
| 1984 void AppCacheStorageImpl::OnLazyCommitTimer() { | 1982 void AppCacheStorageImpl::OnLazyCommitTimer() { |
| 1985 lazy_commit_timer_.Stop(); | 1983 lazy_commit_timer_.Stop(); |
| 1986 if (is_disabled()) | 1984 if (is_disabled()) |
| 1987 return; | 1985 return; |
| 1988 scoped_refptr<DatabaseTask> task(new CommitLastAccessTimesTask(this)); | 1986 scoped_refptr<DatabaseTask> task(new CommitLastAccessTimesTask(this)); |
| 1989 task->Schedule(); | 1987 task->Schedule(); |
| 1990 } | 1988 } |
| 1991 | 1989 |
| 1992 } // namespace content | 1990 } // namespace content |
| OLD | NEW |