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

Unified Diff: extensions/browser/load_monitoring_extension_host_queue_unittest.cc

Issue 1012823002: Revert of Make LoadMonitoringExtensionHostQueue remove itself as an ExtensionHost observer at the... (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « extensions/browser/load_monitoring_extension_host_queue.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: extensions/browser/load_monitoring_extension_host_queue_unittest.cc
diff --git a/extensions/browser/load_monitoring_extension_host_queue_unittest.cc b/extensions/browser/load_monitoring_extension_host_queue_unittest.cc
index ef1a1c1c92e62af480d9f4ebef7ccc9c57ebc64e..1157ecda46825b09a3f0b19c3abd2eea71850201 100644
--- a/extensions/browser/load_monitoring_extension_host_queue_unittest.cc
+++ b/extensions/browser/load_monitoring_extension_host_queue_unittest.cc
@@ -16,25 +16,12 @@
namespace {
class StubDeferredStartRenderHost : public DeferredStartRenderHost {
- public:
- // Returns true if this host is being observed by |observer|.
- bool IsObservedBy(DeferredStartRenderHostObserver* observer) {
- return observers_.count(observer) > 0;
- }
-
private:
- // DeferredStartRenderHost:
void AddDeferredStartRenderHostObserver(
- DeferredStartRenderHostObserver* observer) override {
- observers_.insert(observer);
- }
+ DeferredStartRenderHostObserver* observer) override {}
void RemoveDeferredStartRenderHostObserver(
- DeferredStartRenderHostObserver* observer) override {
- observers_.erase(observer);
- }
+ DeferredStartRenderHostObserver* observer) override {}
void CreateRenderViewNow() override {}
-
- std::set<DeferredStartRenderHostObserver*> observers_;
};
const size_t g_invalid_size_t = std::numeric_limits<size_t>::max();
@@ -48,7 +35,7 @@
// Arbitrary choice of an invalid size_t.
num_queued_(g_invalid_size_t),
num_loaded_(g_invalid_size_t),
- max_awaiting_loading_(g_invalid_size_t),
+ max_in_queue_(g_invalid_size_t),
max_active_loading_(g_invalid_size_t) {}
void SetUp() override {
@@ -63,7 +50,7 @@
protected:
// Creates a new DeferredStartRenderHost. Ownership is held by this class,
// not passed to caller.
- StubDeferredStartRenderHost* CreateHost() {
+ DeferredStartRenderHost* CreateHost() {
StubDeferredStartRenderHost* stub = new StubDeferredStartRenderHost();
stubs_.push_back(stub);
return stub;
@@ -73,26 +60,25 @@
LoadMonitoringExtensionHostQueue* queue() { return queue_.get(); }
// Returns true if the queue has finished monitoring.
- bool finished() const { return finished_; }
+ bool finished() { return finished_; }
// These are available after the queue has finished (in which case finished()
// will return true).
size_t num_queued() { return num_queued_; }
size_t num_loaded() { return num_loaded_; }
- size_t max_awaiting_loading() { return max_awaiting_loading_; }
+ size_t max_in_queue() { return max_in_queue_; }
size_t max_active_loading() { return max_active_loading_; }
private:
// Callback when queue has finished monitoring.
void Finished(size_t num_queued,
size_t num_loaded,
- size_t max_awaiting_loading,
+ size_t max_in_queue,
size_t max_active_loading) {
- CHECK(!finished_);
finished_ = true;
num_queued_ = num_queued;
num_loaded_ = num_loaded;
- max_awaiting_loading_ = max_awaiting_loading;
+ max_in_queue_ = max_in_queue;
max_active_loading_ = max_active_loading;
}
@@ -104,7 +90,7 @@
bool finished_;
size_t num_queued_;
size_t num_loaded_;
- size_t max_awaiting_loading_;
+ size_t max_in_queue_;
size_t max_active_loading_;
};
@@ -123,7 +109,7 @@
ASSERT_TRUE(finished());
EXPECT_EQ(0u, num_queued());
EXPECT_EQ(0u, num_loaded());
- EXPECT_EQ(0u, max_awaiting_loading());
+ EXPECT_EQ(0u, max_in_queue());
EXPECT_EQ(0u, max_active_loading());
}
@@ -135,7 +121,7 @@
ASSERT_TRUE(finished());
EXPECT_EQ(1u, num_queued());
EXPECT_EQ(0u, num_loaded());
- EXPECT_EQ(1u, max_awaiting_loading());
+ EXPECT_EQ(1u, max_in_queue());
EXPECT_EQ(0u, max_active_loading());
}
@@ -150,7 +136,7 @@
ASSERT_TRUE(finished());
EXPECT_EQ(1u, num_queued());
EXPECT_EQ(0u, num_loaded());
- EXPECT_EQ(1u, max_awaiting_loading());
+ EXPECT_EQ(1u, max_in_queue());
EXPECT_EQ(0u, max_active_loading());
}
@@ -164,8 +150,12 @@
ASSERT_TRUE(finished());
EXPECT_EQ(1u, num_queued());
EXPECT_EQ(0u, num_loaded());
- EXPECT_EQ(1u, max_awaiting_loading());
- EXPECT_EQ(1u, max_active_loading());
+ EXPECT_EQ(1u, max_in_queue());
+ EXPECT_EQ(1u, max_active_loading());
+
+ // Sanity check: stopping/destroying at this point doesn't crash.
+ queue()->OnDeferredStartRenderHostDidStopLoading(host);
+ queue()->OnDeferredStartRenderHostDestroyed(host);
}
// Tests adding and destroying a single host without starting it.
@@ -178,8 +168,12 @@
ASSERT_TRUE(finished());
EXPECT_EQ(1u, num_queued());
EXPECT_EQ(0u, num_loaded());
- EXPECT_EQ(1u, max_awaiting_loading());
- EXPECT_EQ(0u, max_active_loading());
+ EXPECT_EQ(1u, max_in_queue());
+ EXPECT_EQ(0u, max_active_loading());
+
+ // Sanity check: stopping/destroying at this point doesn't crash.
+ queue()->OnDeferredStartRenderHostDidStopLoading(host);
+ queue()->OnDeferredStartRenderHostDestroyed(host);
}
// Tests adding, starting, and stopping a single host.
@@ -193,28 +187,11 @@
ASSERT_TRUE(finished());
EXPECT_EQ(1u, num_queued());
EXPECT_EQ(1u, num_loaded());
- EXPECT_EQ(1u, max_awaiting_loading());
- EXPECT_EQ(1u, max_active_loading());
-}
-
-// Tests adding, starting, and stopping a single host - twice.
-TEST_F(LoadMonitoringExtensionHostQueueTest, AddAndStartAndStopOneHostTwice) {
- DeferredStartRenderHost* host = CreateHost();
- queue()->Add(host);
- queue()->OnDeferredStartRenderHostDidStartLoading(host);
- queue()->OnDeferredStartRenderHostDidStopLoading(host);
-
- // Re-starting loading should also be recorded fine (e.g. navigations could
- // trigger this).
- queue()->OnDeferredStartRenderHostDidStartLoading(host);
- queue()->OnDeferredStartRenderHostDidStopLoading(host);
-
- base::RunLoop().RunUntilIdle();
- ASSERT_TRUE(finished());
- EXPECT_EQ(1u, num_queued());
- EXPECT_EQ(2u, num_loaded()); // 2 loaded this time, because we ran twice
- EXPECT_EQ(1u, max_awaiting_loading());
- EXPECT_EQ(1u, max_active_loading());
+ EXPECT_EQ(1u, max_in_queue());
+ EXPECT_EQ(1u, max_active_loading());
+
+ // Sanity check: destroying at this point doesn't crash.
+ queue()->OnDeferredStartRenderHostDestroyed(host);
}
// Tests adding, starting, and destroying (i.e. an implicit stop) a single host.
@@ -228,7 +205,7 @@
ASSERT_TRUE(finished());
EXPECT_EQ(1u, num_queued());
EXPECT_EQ(1u, num_loaded());
- EXPECT_EQ(1u, max_awaiting_loading());
+ EXPECT_EQ(1u, max_in_queue());
EXPECT_EQ(1u, max_active_loading());
}
@@ -243,7 +220,7 @@
ASSERT_TRUE(finished());
EXPECT_EQ(1u, num_queued());
EXPECT_EQ(0u, num_loaded());
- EXPECT_EQ(1u, max_awaiting_loading());
+ EXPECT_EQ(1u, max_in_queue());
EXPECT_EQ(1u, max_active_loading());
}
@@ -281,10 +258,11 @@
ASSERT_TRUE(finished());
EXPECT_EQ(6u, num_queued());
EXPECT_EQ(2u, num_loaded());
- EXPECT_EQ(4u, max_awaiting_loading());
+ EXPECT_EQ(4u, max_in_queue());
EXPECT_EQ(3u, max_active_loading());
- // Complete a realistic sequence by stopping and/or destroying all hosts.
+ // Sanity check: complete a realistic sequence by stopping and/or destroying
+ // all of the hosts. It shouldn't crash.
queue()->OnDeferredStartRenderHostDestroyed(host1);
queue()->OnDeferredStartRenderHostDidStopLoading(host2);
queue()->OnDeferredStartRenderHostDestroyed(host2);
@@ -295,58 +273,4 @@
queue()->OnDeferredStartRenderHostDestroyed(host6); // never started/stopped
}
-// Tests that the queue is observing Hosts from adding them through to being
-// removed - that the load sequence itself is irrelevant.
-//
-// This is an unfortunate implementation-style test, but it used to be a bug
-// and difficult to catch outside of a proper test framework - one in which we
-// don't have to trigger events by hand.
-TEST_F(LoadMonitoringExtensionHostQueueTest, ObserverLifetime) {
- StubDeferredStartRenderHost* host1 = CreateHost();
- StubDeferredStartRenderHost* host2 = CreateHost();
- StubDeferredStartRenderHost* host3 = CreateHost();
- StubDeferredStartRenderHost* host4 = CreateHost();
-
- EXPECT_FALSE(host1->IsObservedBy(queue()));
- EXPECT_FALSE(host2->IsObservedBy(queue()));
- EXPECT_FALSE(host3->IsObservedBy(queue()));
- EXPECT_FALSE(host4->IsObservedBy(queue()));
-
- queue()->Add(host1);
- queue()->Add(host2);
- queue()->Add(host3);
- queue()->Add(host4);
-
- EXPECT_TRUE(host1->IsObservedBy(queue()));
- EXPECT_TRUE(host2->IsObservedBy(queue()));
- EXPECT_TRUE(host3->IsObservedBy(queue()));
- EXPECT_TRUE(host4->IsObservedBy(queue()));
-
- queue()->OnDeferredStartRenderHostDidStartLoading(host1);
- queue()->OnDeferredStartRenderHostDidStartLoading(host2);
- queue()->OnDeferredStartRenderHostDidStartLoading(host3);
- // host4 will test that we Remove before Starting - so don't start.
-
- EXPECT_TRUE(host1->IsObservedBy(queue()));
- EXPECT_TRUE(host2->IsObservedBy(queue()));
- EXPECT_TRUE(host3->IsObservedBy(queue()));
- EXPECT_TRUE(host4->IsObservedBy(queue()));
-
- queue()->OnDeferredStartRenderHostDidStopLoading(host1);
- queue()->OnDeferredStartRenderHostDestroyed(host2);
-
- EXPECT_TRUE(host1->IsObservedBy(queue()));
- EXPECT_TRUE(host2->IsObservedBy(queue()));
-
- queue()->Remove(host1);
- queue()->Remove(host2);
- queue()->Remove(host3);
- queue()->Remove(host4);
-
- EXPECT_FALSE(host1->IsObservedBy(queue()));
- EXPECT_FALSE(host2->IsObservedBy(queue()));
- EXPECT_FALSE(host3->IsObservedBy(queue()));
- EXPECT_FALSE(host4->IsObservedBy(queue()));
-}
-
} // namespace extensions
« no previous file with comments | « extensions/browser/load_monitoring_extension_host_queue.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698