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

Side by Side Diff: webkit/browser/appcache/appcache_storage_impl.cc

Issue 164933002: Expose details for appcache error events [Chromium] (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix merge glitch, complete a rename Created 6 years, 8 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 "webkit/browser/appcache/appcache_storage_impl.h" 5 #include "webkit/browser/appcache/appcache_storage_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <functional> 8 #include <functional>
9 #include <set> 9 #include <set>
10 #include <vector> 10 #include <vector>
(...skipping 1104 matching lines...) Expand 10 before | Expand all | Expand 10 after
1115 void AppCacheStorageImpl::MarkEntryAsForeignTask::RunCompleted() { 1115 void AppCacheStorageImpl::MarkEntryAsForeignTask::RunCompleted() {
1116 DCHECK(storage_->pending_foreign_markings_.front().first == entry_url_ && 1116 DCHECK(storage_->pending_foreign_markings_.front().first == entry_url_ &&
1117 storage_->pending_foreign_markings_.front().second == cache_id_); 1117 storage_->pending_foreign_markings_.front().second == cache_id_);
1118 storage_->pending_foreign_markings_.pop_front(); 1118 storage_->pending_foreign_markings_.pop_front();
1119 } 1119 }
1120 1120
1121 // MakeGroupObsoleteTask ------- 1121 // MakeGroupObsoleteTask -------
1122 1122
1123 class AppCacheStorageImpl::MakeGroupObsoleteTask : public DatabaseTask { 1123 class AppCacheStorageImpl::MakeGroupObsoleteTask : public DatabaseTask {
1124 public: 1124 public:
1125 MakeGroupObsoleteTask(AppCacheStorageImpl* storage, AppCacheGroup* group); 1125 MakeGroupObsoleteTask(AppCacheStorageImpl* storage,
1126 AppCacheGroup* group,
1127 int response_code);
1126 1128
1127 // DatabaseTask: 1129 // DatabaseTask:
1128 virtual void Run() OVERRIDE; 1130 virtual void Run() OVERRIDE;
1129 virtual void RunCompleted() OVERRIDE; 1131 virtual void RunCompleted() OVERRIDE;
1130 virtual void CancelCompletion() OVERRIDE; 1132 virtual void CancelCompletion() OVERRIDE;
1131 1133
1132 protected: 1134 protected:
1133 virtual ~MakeGroupObsoleteTask() {} 1135 virtual ~MakeGroupObsoleteTask() {}
1134 1136
1135 private: 1137 private:
1136 scoped_refptr<AppCacheGroup> group_; 1138 scoped_refptr<AppCacheGroup> group_;
1137 int64 group_id_; 1139 int64 group_id_;
1138 GURL origin_; 1140 GURL origin_;
1139 bool success_; 1141 bool success_;
1142 int response_code_;
1140 int64 new_origin_usage_; 1143 int64 new_origin_usage_;
1141 std::vector<int64> newly_deletable_response_ids_; 1144 std::vector<int64> newly_deletable_response_ids_;
1142 }; 1145 };
1143 1146
1144 AppCacheStorageImpl::MakeGroupObsoleteTask::MakeGroupObsoleteTask( 1147 AppCacheStorageImpl::MakeGroupObsoleteTask::MakeGroupObsoleteTask(
1145 AppCacheStorageImpl* storage, AppCacheGroup* group) 1148 AppCacheStorageImpl* storage,
1146 : DatabaseTask(storage), group_(group), group_id_(group->group_id()), 1149 AppCacheGroup* group,
1150 int response_code)
1151 : DatabaseTask(storage),
1152 group_(group),
1153 group_id_(group->group_id()),
1147 origin_(group->manifest_url().GetOrigin()), 1154 origin_(group->manifest_url().GetOrigin()),
1148 success_(false), new_origin_usage_(-1) { 1155 success_(false),
1149 } 1156 response_code_(response_code),
1157 new_origin_usage_(-1) {}
1150 1158
1151 void AppCacheStorageImpl::MakeGroupObsoleteTask::Run() { 1159 void AppCacheStorageImpl::MakeGroupObsoleteTask::Run() {
1152 DCHECK(!success_); 1160 DCHECK(!success_);
1153 sql::Connection* connection = database_->db_connection(); 1161 sql::Connection* connection = database_->db_connection();
1154 if (!connection) 1162 if (!connection)
1155 return; 1163 return;
1156 1164
1157 sql::Transaction transaction(connection); 1165 sql::Transaction transaction(connection);
1158 if (!transaction.Begin()) 1166 if (!transaction.Begin())
1159 return; 1167 return;
(...skipping 21 matching lines...) Expand all
1181 if (!storage_->is_disabled()) { 1189 if (!storage_->is_disabled()) {
1182 storage_->UpdateUsageMapAndNotify(origin_, new_origin_usage_); 1190 storage_->UpdateUsageMapAndNotify(origin_, new_origin_usage_);
1183 group_->AddNewlyDeletableResponseIds(&newly_deletable_response_ids_); 1191 group_->AddNewlyDeletableResponseIds(&newly_deletable_response_ids_);
1184 1192
1185 // Also remove from the working set, caches for an 'obsolete' group 1193 // Also remove from the working set, caches for an 'obsolete' group
1186 // may linger in use, but the group itself cannot be looked up by 1194 // may linger in use, but the group itself cannot be looked up by
1187 // 'manifest_url' in the working set any longer. 1195 // 'manifest_url' in the working set any longer.
1188 storage_->working_set()->RemoveGroup(group_.get()); 1196 storage_->working_set()->RemoveGroup(group_.get());
1189 } 1197 }
1190 } 1198 }
1191 FOR_EACH_DELEGATE(delegates_, OnGroupMadeObsolete(group_.get(), success_)); 1199 FOR_EACH_DELEGATE(
1200 delegates_, OnGroupMadeObsolete(group_.get(), success_, response_code_));
1192 group_ = NULL; 1201 group_ = NULL;
1193 } 1202 }
1194 1203
1195 void AppCacheStorageImpl::MakeGroupObsoleteTask::CancelCompletion() { 1204 void AppCacheStorageImpl::MakeGroupObsoleteTask::CancelCompletion() {
1196 // Overriden to safely drop our reference to the group 1205 // Overriden to safely drop our reference to the group
1197 // which is not thread safe refcounted. 1206 // which is not thread safe refcounted.
1198 DatabaseTask::CancelCompletion(); 1207 DatabaseTask::CancelCompletion();
1199 group_ = NULL; 1208 group_ = NULL;
1200 } 1209 }
1201 1210
(...skipping 398 matching lines...) Expand 10 before | Expand all | Expand 10 after
1600 DCHECK(entry); 1609 DCHECK(entry);
1601 if (entry) 1610 if (entry)
1602 entry->add_types(AppCacheEntry::FOREIGN); 1611 entry->add_types(AppCacheEntry::FOREIGN);
1603 } 1612 }
1604 scoped_refptr<MarkEntryAsForeignTask> task( 1613 scoped_refptr<MarkEntryAsForeignTask> task(
1605 new MarkEntryAsForeignTask(this, entry_url, cache_id)); 1614 new MarkEntryAsForeignTask(this, entry_url, cache_id));
1606 task->Schedule(); 1615 task->Schedule();
1607 pending_foreign_markings_.push_back(std::make_pair(entry_url, cache_id)); 1616 pending_foreign_markings_.push_back(std::make_pair(entry_url, cache_id));
1608 } 1617 }
1609 1618
1610 void AppCacheStorageImpl::MakeGroupObsolete( 1619 void AppCacheStorageImpl::MakeGroupObsolete(AppCacheGroup* group,
1611 AppCacheGroup* group, Delegate* delegate) { 1620 Delegate* delegate,
1621 int response_code) {
1612 DCHECK(group && delegate); 1622 DCHECK(group && delegate);
1613 scoped_refptr<MakeGroupObsoleteTask> task( 1623 scoped_refptr<MakeGroupObsoleteTask> task(
1614 new MakeGroupObsoleteTask(this, group)); 1624 new MakeGroupObsoleteTask(this, group, response_code));
1615 task->AddDelegate(GetOrCreateDelegateReference(delegate)); 1625 task->AddDelegate(GetOrCreateDelegateReference(delegate));
1616 task->Schedule(); 1626 task->Schedule();
1617 } 1627 }
1618 1628
1619 AppCacheResponseReader* AppCacheStorageImpl::CreateResponseReader( 1629 AppCacheResponseReader* AppCacheStorageImpl::CreateResponseReader(
1620 const GURL& manifest_url, int64 group_id, int64 response_id) { 1630 const GURL& manifest_url, int64 group_id, int64 response_id) {
1621 return new AppCacheResponseReader(response_id, group_id, disk_cache()); 1631 return new AppCacheResponseReader(response_id, group_id, disk_cache());
1622 } 1632 }
1623 1633
1624 AppCacheResponseWriter* AppCacheStorageImpl::CreateResponseWriter( 1634 AppCacheResponseWriter* AppCacheStorageImpl::CreateResponseWriter(
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after
1841 base::Bind(&AppCacheStorageImpl::CallScheduleReinitialize, 1851 base::Bind(&AppCacheStorageImpl::CallScheduleReinitialize,
1842 weak_factory_.GetWeakPtr())); 1852 weak_factory_.GetWeakPtr()));
1843 } 1853 }
1844 1854
1845 void AppCacheStorageImpl::CallScheduleReinitialize() { 1855 void AppCacheStorageImpl::CallScheduleReinitialize() {
1846 service_->ScheduleReinitialize(); 1856 service_->ScheduleReinitialize();
1847 // note: 'this' may be deleted at this point. 1857 // note: 'this' may be deleted at this point.
1848 } 1858 }
1849 1859
1850 } // namespace appcache 1860 } // namespace appcache
OLDNEW
« no previous file with comments | « webkit/browser/appcache/appcache_storage_impl.h ('k') | webkit/browser/appcache/appcache_storage_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698