Commit fc1434b2 authored by Daniel Murphy's avatar Daniel Murphy Committed by Commit Bot

[SessionStorage] Sequence checking on release builds

R=pwnall@chromium.org

Bug: 857464
Change-Id: I58218cf3f4831842f5fddaca480523e5c9169f35
Reviewed-on: https://chromium-review.googlesource.com/1142474
Commit-Queue: Daniel Murphy <dmurph@chromium.org>
Reviewed-by: default avatarVictor Costan <pwnall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#576274}
parent bb15c32a
...@@ -85,7 +85,6 @@ LocalStorageCachedArea::LocalStorageCachedArea( ...@@ -85,7 +85,6 @@ LocalStorageCachedArea::LocalStorageCachedArea(
main_thread_scheduler_(main_thread_scheduler), main_thread_scheduler_(main_thread_scheduler),
weak_factory_(this) { weak_factory_(this) {
DCHECK(!namespace_id_.empty()); DCHECK(!namespace_id_.empty());
blink::mojom::StorageAreaAssociatedPtrInfo wrapper_ptr_info; blink::mojom::StorageAreaAssociatedPtrInfo wrapper_ptr_info;
session_namespace->OpenArea(origin_, mojo::MakeRequest(&wrapper_ptr_info)); session_namespace->OpenArea(origin_, mojo::MakeRequest(&wrapper_ptr_info));
leveldb_.Bind(std::move(wrapper_ptr_info), leveldb_.Bind(std::move(wrapper_ptr_info),
......
...@@ -35,12 +35,12 @@ LocalStorageCachedAreas::LocalStorageCachedAreas( ...@@ -35,12 +35,12 @@ LocalStorageCachedAreas::LocalStorageCachedAreas(
main_thread_scheduler_(main_thread_scheduler) {} main_thread_scheduler_(main_thread_scheduler) {}
LocalStorageCachedAreas::~LocalStorageCachedAreas() { LocalStorageCachedAreas::~LocalStorageCachedAreas() {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); CHECK(sequence_checker_.CalledOnValidSequence());
} }
scoped_refptr<LocalStorageCachedArea> LocalStorageCachedAreas::GetCachedArea( scoped_refptr<LocalStorageCachedArea> LocalStorageCachedAreas::GetCachedArea(
const url::Origin& origin) { const url::Origin& origin) {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); CHECK(sequence_checker_.CalledOnValidSequence());
return GetCachedArea(kLocalStorageNamespaceId, origin, return GetCachedArea(kLocalStorageNamespaceId, origin,
main_thread_scheduler_); main_thread_scheduler_);
} }
...@@ -49,7 +49,7 @@ scoped_refptr<LocalStorageCachedArea> ...@@ -49,7 +49,7 @@ scoped_refptr<LocalStorageCachedArea>
LocalStorageCachedAreas::GetSessionStorageArea(const std::string& namespace_id, LocalStorageCachedAreas::GetSessionStorageArea(const std::string& namespace_id,
const url::Origin& origin) { const url::Origin& origin) {
DCHECK_NE(kLocalStorageNamespaceId, namespace_id); DCHECK_NE(kLocalStorageNamespaceId, namespace_id);
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); CHECK(sequence_checker_.CalledOnValidSequence());
return GetCachedArea(namespace_id, origin, main_thread_scheduler_); return GetCachedArea(namespace_id, origin, main_thread_scheduler_);
} }
...@@ -59,7 +59,7 @@ void LocalStorageCachedAreas::CloneNamespace( ...@@ -59,7 +59,7 @@ void LocalStorageCachedAreas::CloneNamespace(
DCHECK(base::FeatureList::IsEnabled(features::kMojoSessionStorage)); DCHECK(base::FeatureList::IsEnabled(features::kMojoSessionStorage));
DCHECK_EQ(kSessionStorageNamespaceIdLength, source_namespace.size()); DCHECK_EQ(kSessionStorageNamespaceIdLength, source_namespace.size());
DCHECK_EQ(kSessionStorageNamespaceIdLength, destination_namespace.size()); DCHECK_EQ(kSessionStorageNamespaceIdLength, destination_namespace.size());
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); CHECK(sequence_checker_.CalledOnValidSequence());
auto namespace_it = cached_namespaces_.find(source_namespace); auto namespace_it = cached_namespaces_.find(source_namespace);
if (namespace_it == cached_namespaces_.end()) { if (namespace_it == cached_namespaces_.end()) {
...@@ -76,7 +76,7 @@ void LocalStorageCachedAreas::CloneNamespace( ...@@ -76,7 +76,7 @@ void LocalStorageCachedAreas::CloneNamespace(
} }
size_t LocalStorageCachedAreas::TotalCacheSize() const { size_t LocalStorageCachedAreas::TotalCacheSize() const {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); CHECK(sequence_checker_.CalledOnValidSequence());
size_t total = 0; size_t total = 0;
for (const auto& it : cached_namespaces_) for (const auto& it : cached_namespaces_)
total += it.second.TotalCacheSize(); total += it.second.TotalCacheSize();
...@@ -84,7 +84,7 @@ size_t LocalStorageCachedAreas::TotalCacheSize() const { ...@@ -84,7 +84,7 @@ size_t LocalStorageCachedAreas::TotalCacheSize() const {
} }
void LocalStorageCachedAreas::ClearAreasIfNeeded() { void LocalStorageCachedAreas::ClearAreasIfNeeded() {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); CHECK(sequence_checker_.CalledOnValidSequence());
if (TotalCacheSize() < total_cache_limit_) if (TotalCacheSize() < total_cache_limit_)
return; return;
...@@ -96,7 +96,7 @@ scoped_refptr<LocalStorageCachedArea> LocalStorageCachedAreas::GetCachedArea( ...@@ -96,7 +96,7 @@ scoped_refptr<LocalStorageCachedArea> LocalStorageCachedAreas::GetCachedArea(
const std::string& namespace_id, const std::string& namespace_id,
const url::Origin& origin, const url::Origin& origin,
blink::scheduler::WebThreadScheduler* scheduler) { blink::scheduler::WebThreadScheduler* scheduler) {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); CHECK(sequence_checker_.CalledOnValidSequence());
// These values are persisted to logs. Entries should not be renumbered and // These values are persisted to logs. Entries should not be renumbered and
// numeric values should never be reused. // numeric values should never be reused.
enum class CacheMetrics { enum class CacheMetrics {
......
...@@ -56,7 +56,7 @@ class CONTENT_EXPORT LocalStorageCachedAreas { ...@@ -56,7 +56,7 @@ class CONTENT_EXPORT LocalStorageCachedAreas {
size_t TotalCacheSize() const; size_t TotalCacheSize() const;
void set_cache_limit_for_testing(size_t limit) { void set_cache_limit_for_testing(size_t limit) {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); CHECK(sequence_checker_.CalledOnValidSequence());
total_cache_limit_ = limit; total_cache_limit_ = limit;
} }
...@@ -68,7 +68,9 @@ class CONTENT_EXPORT LocalStorageCachedAreas { ...@@ -68,7 +68,9 @@ class CONTENT_EXPORT LocalStorageCachedAreas {
const url::Origin& origin, const url::Origin& origin,
blink::scheduler::WebThreadScheduler* scheduler); blink::scheduler::WebThreadScheduler* scheduler);
SEQUENCE_CHECKER(sequence_checker_); // TODO(dmurph): Remove release check when crashing has stopped.
// http://crbug.com/857464
base::SequenceCheckerImpl sequence_checker_;
blink::mojom::StoragePartitionService* const storage_partition_service_; blink::mojom::StoragePartitionService* const storage_partition_service_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment