Commit 1ec1977c authored by Daniel Murphy's avatar Daniel Murphy Committed by Commit Bot

Revert "[SessionStorage] Resolve OpenSessionStorage at bind site"

This reverts commit 6fc31bcf.

Reason for revert: The crashes have stopped, so these debugging CLs
are being reverted.

Original change's description:
> [SessionStorage] Resolve OpenSessionStorage at bind site
> 
> R=​mek@chromium.org
> 
> Bug: 927534
> Change-Id: Ic50cb227f34127ed69cbd9e8edf13ca5824238d6
> Reviewed-on: https://chromium-review.googlesource.com/c/1479274
> Reviewed-by: Marijn Kruisselbrink <mek@chromium.org>
> Commit-Queue: Daniel Murphy <dmurph@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#633881}

TBR=dmurph@chromium.org,mek@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 927534
Change-Id: I0a02e62a4b5b6a3a6f6a5ff35ef43326c106a8f3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1506460Reviewed-by: default avatarDaniel Murphy <dmurph@chromium.org>
Reviewed-by: default avatarMarijn Kruisselbrink <mek@chromium.org>
Commit-Queue: Daniel Murphy <dmurph@chromium.org>
Cr-Commit-Position: refs/heads/master@{#638252}
parent 17dcf3fc
...@@ -151,7 +151,8 @@ void SessionStorageContextMojo::OpenSessionStorage( ...@@ -151,7 +151,8 @@ void SessionStorageContextMojo::OpenSessionStorage(
} }
PurgeUnusedAreasIfNeeded(); PurgeUnusedAreasIfNeeded();
found->second->Bind(std::move(request), process_id, std::move(bind_done)); found->second->Bind(std::move(request), process_id);
std::move(bind_done).Run();
size_t total_cache_size, unused_area_count; size_t total_cache_size, unused_area_count;
GetStatistics(&total_cache_size, &unused_area_count); GetStatistics(&total_cache_size, &unused_area_count);
......
...@@ -96,19 +96,17 @@ void SessionStorageNamespaceImplMojo::Reset() { ...@@ -96,19 +96,17 @@ void SessionStorageNamespaceImplMojo::Reset() {
void SessionStorageNamespaceImplMojo::Bind( void SessionStorageNamespaceImplMojo::Bind(
blink::mojom::SessionStorageNamespaceRequest request, blink::mojom::SessionStorageNamespaceRequest request,
int process_id, int process_id) {
base::OnceClosure bind_done) {
if (waiting_on_clone_population_) { if (waiting_on_clone_population_) {
bind_waiting_on_clone_population_ = true; bind_waiting_on_clone_population_ = true;
run_after_clone_population_.push_back(base::BindOnce( run_after_clone_population_.push_back(
&SessionStorageNamespaceImplMojo::Bind, base::Unretained(this), base::BindOnce(&SessionStorageNamespaceImplMojo::Bind,
std::move(request), process_id, std::move(bind_done))); base::Unretained(this), std::move(request), process_id));
return; return;
} }
DCHECK(IsPopulated()); DCHECK(IsPopulated());
bindings_.AddBinding(this, std::move(request), process_id); bindings_.AddBinding(this, std::move(request), process_id);
bind_waiting_on_clone_population_ = false; bind_waiting_on_clone_population_ = false;
std::move(bind_done).Run();
} }
void SessionStorageNamespaceImplMojo::PurgeUnboundAreas() { void SessionStorageNamespaceImplMojo::PurgeUnboundAreas() {
......
...@@ -122,8 +122,7 @@ class CONTENT_EXPORT SessionStorageNamespaceImplMojo final ...@@ -122,8 +122,7 @@ class CONTENT_EXPORT SessionStorageNamespaceImplMojo final
// eventually be called before the SessionStorageNamespaceRequest can be // eventually be called before the SessionStorageNamespaceRequest can be
// bound. // bound.
void Bind(blink::mojom::SessionStorageNamespaceRequest request, void Bind(blink::mojom::SessionStorageNamespaceRequest request,
int process_id, int process_id);
base::OnceClosure bind_done);
bool IsBound() const { bool IsBound() const {
return !bindings_.empty() || bind_waiting_on_clone_population_; return !bindings_.empty() || bind_waiting_on_clone_population_;
......
...@@ -192,8 +192,7 @@ TEST_F(SessionStorageNamespaceImplMojoTest, MetadataLoad) { ...@@ -192,8 +192,7 @@ TEST_F(SessionStorageNamespaceImplMojoTest, MetadataLoad) {
&database_, metadata_.GetOrCreateNamespaceEntry(test_namespace_id1_)); &database_, metadata_.GetOrCreateNamespaceEntry(test_namespace_id1_));
blink::mojom::SessionStorageNamespacePtr ss_namespace; blink::mojom::SessionStorageNamespacePtr ss_namespace;
namespace_impl->Bind(mojo::MakeRequest(&ss_namespace), kTestProcessIdOrigin1, namespace_impl->Bind(mojo::MakeRequest(&ss_namespace), kTestProcessIdOrigin1);
base::DoNothing());
blink::mojom::StorageAreaAssociatedPtr leveldb_1; blink::mojom::StorageAreaAssociatedPtr leveldb_1;
ss_namespace->OpenArea(test_origin1_, mojo::MakeRequest(&leveldb_1)); ss_namespace->OpenArea(test_origin1_, mojo::MakeRequest(&leveldb_1));
...@@ -224,8 +223,7 @@ TEST_F(SessionStorageNamespaceImplMojoTest, MetadataLoadWithMapOperations) { ...@@ -224,8 +223,7 @@ TEST_F(SessionStorageNamespaceImplMojoTest, MetadataLoadWithMapOperations) {
&database_, metadata_.GetOrCreateNamespaceEntry(test_namespace_id1_)); &database_, metadata_.GetOrCreateNamespaceEntry(test_namespace_id1_));
blink::mojom::SessionStorageNamespacePtr ss_namespace; blink::mojom::SessionStorageNamespacePtr ss_namespace;
namespace_impl->Bind(mojo::MakeRequest(&ss_namespace), kTestProcessIdOrigin1, namespace_impl->Bind(mojo::MakeRequest(&ss_namespace), kTestProcessIdOrigin1);
base::DoNothing());
blink::mojom::StorageAreaAssociatedPtr leveldb_1; blink::mojom::StorageAreaAssociatedPtr leveldb_1;
ss_namespace->OpenArea(test_origin1_, mojo::MakeRequest(&leveldb_1)); ss_namespace->OpenArea(test_origin1_, mojo::MakeRequest(&leveldb_1));
...@@ -265,7 +263,7 @@ TEST_F(SessionStorageNamespaceImplMojoTest, CloneBeforeBind) { ...@@ -265,7 +263,7 @@ TEST_F(SessionStorageNamespaceImplMojoTest, CloneBeforeBind) {
blink::mojom::SessionStorageNamespacePtr ss_namespace1; blink::mojom::SessionStorageNamespacePtr ss_namespace1;
namespace_impl1->Bind(mojo::MakeRequest(&ss_namespace1), namespace_impl1->Bind(mojo::MakeRequest(&ss_namespace1),
kTestProcessIdOrigin1, base::DoNothing()); kTestProcessIdOrigin1);
ss_namespace1->Clone(test_namespace_id2_); ss_namespace1->Clone(test_namespace_id2_);
ss_namespace1.FlushForTesting(); ss_namespace1.FlushForTesting();
...@@ -273,7 +271,7 @@ TEST_F(SessionStorageNamespaceImplMojoTest, CloneBeforeBind) { ...@@ -273,7 +271,7 @@ TEST_F(SessionStorageNamespaceImplMojoTest, CloneBeforeBind) {
blink::mojom::SessionStorageNamespacePtr ss_namespace2; blink::mojom::SessionStorageNamespacePtr ss_namespace2;
namespace_impl2->Bind(mojo::MakeRequest(&ss_namespace2), namespace_impl2->Bind(mojo::MakeRequest(&ss_namespace2),
kTestProcessIdOrigin1, base::DoNothing()); kTestProcessIdOrigin1);
blink::mojom::StorageAreaAssociatedPtr leveldb_2; blink::mojom::StorageAreaAssociatedPtr leveldb_2;
ss_namespace2->OpenArea(test_origin1_, mojo::MakeRequest(&leveldb_2)); ss_namespace2->OpenArea(test_origin1_, mojo::MakeRequest(&leveldb_2));
...@@ -320,7 +318,7 @@ TEST_F(SessionStorageNamespaceImplMojoTest, CloneAfterBind) { ...@@ -320,7 +318,7 @@ TEST_F(SessionStorageNamespaceImplMojoTest, CloneAfterBind) {
blink::mojom::SessionStorageNamespacePtr ss_namespace1; blink::mojom::SessionStorageNamespacePtr ss_namespace1;
namespace_impl1->Bind(mojo::MakeRequest(&ss_namespace1), namespace_impl1->Bind(mojo::MakeRequest(&ss_namespace1),
kTestProcessIdOrigin1, base::DoNothing()); kTestProcessIdOrigin1);
// Set that we are waiting for clone, so binding is possible. // Set that we are waiting for clone, so binding is possible.
namespace_impl2->SetWaitingForClonePopulation(); namespace_impl2->SetWaitingForClonePopulation();
...@@ -331,7 +329,7 @@ TEST_F(SessionStorageNamespaceImplMojoTest, CloneAfterBind) { ...@@ -331,7 +329,7 @@ TEST_F(SessionStorageNamespaceImplMojoTest, CloneAfterBind) {
// Get a new area. // Get a new area.
blink::mojom::SessionStorageNamespacePtr ss_namespace2; blink::mojom::SessionStorageNamespacePtr ss_namespace2;
namespace_impl2->Bind(mojo::MakeRequest(&ss_namespace2), namespace_impl2->Bind(mojo::MakeRequest(&ss_namespace2),
kTestProcessIdAllOrigins, base::DoNothing()); kTestProcessIdAllOrigins);
blink::mojom::StorageAreaAssociatedPtr leveldb_n2_o1; blink::mojom::StorageAreaAssociatedPtr leveldb_n2_o1;
blink::mojom::StorageAreaAssociatedPtr leveldb_n2_o2; blink::mojom::StorageAreaAssociatedPtr leveldb_n2_o2;
ss_namespace2->OpenArea(test_origin1_, mojo::MakeRequest(&leveldb_n2_o1)); ss_namespace2->OpenArea(test_origin1_, mojo::MakeRequest(&leveldb_n2_o1));
...@@ -381,8 +379,7 @@ TEST_F(SessionStorageNamespaceImplMojoTest, RemoveOriginData) { ...@@ -381,8 +379,7 @@ TEST_F(SessionStorageNamespaceImplMojoTest, RemoveOriginData) {
&database_, metadata_.GetOrCreateNamespaceEntry(test_namespace_id1_)); &database_, metadata_.GetOrCreateNamespaceEntry(test_namespace_id1_));
blink::mojom::SessionStorageNamespacePtr ss_namespace; blink::mojom::SessionStorageNamespacePtr ss_namespace;
namespace_impl->Bind(mojo::MakeRequest(&ss_namespace), kTestProcessIdOrigin1, namespace_impl->Bind(mojo::MakeRequest(&ss_namespace), kTestProcessIdOrigin1);
base::DoNothing());
blink::mojom::StorageAreaAssociatedPtr leveldb_1; blink::mojom::StorageAreaAssociatedPtr leveldb_1;
ss_namespace->OpenArea(test_origin1_, mojo::MakeRequest(&leveldb_1)); ss_namespace->OpenArea(test_origin1_, mojo::MakeRequest(&leveldb_1));
...@@ -452,8 +449,7 @@ TEST_F(SessionStorageNamespaceImplMojoTest, ProcessLockedToOtherOrigin) { ...@@ -452,8 +449,7 @@ TEST_F(SessionStorageNamespaceImplMojoTest, ProcessLockedToOtherOrigin) {
&database_, metadata_.GetOrCreateNamespaceEntry(test_namespace_id1_)); &database_, metadata_.GetOrCreateNamespaceEntry(test_namespace_id1_));
blink::mojom::SessionStorageNamespacePtr ss_namespace; blink::mojom::SessionStorageNamespacePtr ss_namespace;
namespace_impl->Bind(mojo::MakeRequest(&ss_namespace), kTestProcessIdOrigin1, namespace_impl->Bind(mojo::MakeRequest(&ss_namespace), kTestProcessIdOrigin1);
base::DoNothing());
blink::mojom::StorageAreaAssociatedPtr leveldb_1; blink::mojom::StorageAreaAssociatedPtr leveldb_1;
ss_namespace->OpenArea(test_origin3_, mojo::MakeRequest(&leveldb_1)); ss_namespace->OpenArea(test_origin3_, mojo::MakeRequest(&leveldb_1));
ss_namespace.FlushForTesting(); ss_namespace.FlushForTesting();
...@@ -478,8 +474,7 @@ TEST_F(SessionStorageNamespaceImplMojoTest, PurgeUnused) { ...@@ -478,8 +474,7 @@ TEST_F(SessionStorageNamespaceImplMojoTest, PurgeUnused) {
&database_, metadata_.GetOrCreateNamespaceEntry(test_namespace_id1_)); &database_, metadata_.GetOrCreateNamespaceEntry(test_namespace_id1_));
blink::mojom::SessionStorageNamespacePtr ss_namespace; blink::mojom::SessionStorageNamespacePtr ss_namespace;
namespace_impl->Bind(mojo::MakeRequest(&ss_namespace), kTestProcessIdOrigin1, namespace_impl->Bind(mojo::MakeRequest(&ss_namespace), kTestProcessIdOrigin1);
base::DoNothing());
blink::mojom::StorageAreaAssociatedPtr leveldb_1; blink::mojom::StorageAreaAssociatedPtr leveldb_1;
ss_namespace->OpenArea(test_origin1_, mojo::MakeRequest(&leveldb_1)); ss_namespace->OpenArea(test_origin1_, mojo::MakeRequest(&leveldb_1));
...@@ -511,7 +506,7 @@ TEST_F(SessionStorageNamespaceImplMojoTest, NamespaceBindingPerOrigin) { ...@@ -511,7 +506,7 @@ TEST_F(SessionStorageNamespaceImplMojoTest, NamespaceBindingPerOrigin) {
blink::mojom::SessionStorageNamespacePtr ss_namespace_o1; blink::mojom::SessionStorageNamespacePtr ss_namespace_o1;
namespace_impl->Bind(mojo::MakeRequest(&ss_namespace_o1), namespace_impl->Bind(mojo::MakeRequest(&ss_namespace_o1),
kTestProcessIdOrigin1, base::DoNothing()); kTestProcessIdOrigin1);
blink::mojom::StorageAreaAssociatedPtr leveldb_1; blink::mojom::StorageAreaAssociatedPtr leveldb_1;
ss_namespace_o1->OpenArea(test_origin1_, mojo::MakeRequest(&leveldb_1)); ss_namespace_o1->OpenArea(test_origin1_, mojo::MakeRequest(&leveldb_1));
ss_namespace_o1.FlushForTesting(); ss_namespace_o1.FlushForTesting();
...@@ -523,7 +518,7 @@ TEST_F(SessionStorageNamespaceImplMojoTest, NamespaceBindingPerOrigin) { ...@@ -523,7 +518,7 @@ TEST_F(SessionStorageNamespaceImplMojoTest, NamespaceBindingPerOrigin) {
blink::mojom::SessionStorageNamespacePtr ss_namespace_o2; blink::mojom::SessionStorageNamespacePtr ss_namespace_o2;
namespace_impl->Bind(mojo::MakeRequest(&ss_namespace_o2), namespace_impl->Bind(mojo::MakeRequest(&ss_namespace_o2),
kTestProcessIdOrigin3, base::DoNothing()); kTestProcessIdOrigin3);
blink::mojom::StorageAreaAssociatedPtr leveldb_2; blink::mojom::StorageAreaAssociatedPtr leveldb_2;
ss_namespace_o2->OpenArea(test_origin3_, mojo::MakeRequest(&leveldb_2)); ss_namespace_o2->OpenArea(test_origin3_, mojo::MakeRequest(&leveldb_2));
ss_namespace_o2.FlushForTesting(); ss_namespace_o2.FlushForTesting();
...@@ -552,8 +547,7 @@ TEST_F(SessionStorageNamespaceImplMojoTest, ReopenClonedAreaAfterPurge) { ...@@ -552,8 +547,7 @@ TEST_F(SessionStorageNamespaceImplMojoTest, ReopenClonedAreaAfterPurge) {
&database_, metadata_.GetOrCreateNamespaceEntry(test_namespace_id1_)); &database_, metadata_.GetOrCreateNamespaceEntry(test_namespace_id1_));
blink::mojom::SessionStorageNamespacePtr ss_namespace; blink::mojom::SessionStorageNamespacePtr ss_namespace;
namespace_impl->Bind(mojo::MakeRequest(&ss_namespace), kTestProcessIdOrigin1, namespace_impl->Bind(mojo::MakeRequest(&ss_namespace), kTestProcessIdOrigin1);
base::DoNothing());
blink::mojom::StorageAreaAssociatedPtr leveldb_1; blink::mojom::StorageAreaAssociatedPtr leveldb_1;
ss_namespace->OpenArea(test_origin1_, mojo::MakeRequest(&leveldb_1)); ss_namespace->OpenArea(test_origin1_, mojo::MakeRequest(&leveldb_1));
......
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