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

Unified Diff: chrome/browser/extensions/api/web_navigation/frame_navigation_state_unittest.cc

Issue 11090068: When starting a provisional load include the parent frame ID in the IPC and pass it down the th WCO… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: updatess Created 8 years, 2 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
Index: chrome/browser/extensions/api/web_navigation/frame_navigation_state_unittest.cc
diff --git a/chrome/browser/extensions/api/web_navigation/frame_navigation_state_unittest.cc b/chrome/browser/extensions/api/web_navigation/frame_navigation_state_unittest.cc
index 8e1f8cbd85de4cbe6420d21ddecf8a6249e45923..5a998063d056d0664ba283ec1162c99496d0d900 100644
--- a/chrome/browser/extensions/api/web_navigation/frame_navigation_state_unittest.cc
+++ b/chrome/browser/extensions/api/web_navigation/frame_navigation_state_unittest.cc
@@ -16,6 +16,7 @@ content::RenderViewHost* fake_rvh =
// goes away.
TEST(FrameNavigationStateTest, TrackFrame) {
FrameNavigationState navigation_state;
+ const FrameNavigationState::FrameID frame_id0(-1, fake_rvh);
const FrameNavigationState::FrameID frame_id1(23, fake_rvh);
const FrameNavigationState::FrameID frame_id2(42, fake_rvh);
const GURL url1("http://www.google.com/");
@@ -24,7 +25,7 @@ TEST(FrameNavigationStateTest, TrackFrame) {
// Create a main frame.
EXPECT_FALSE(navigation_state.CanSendEvents(frame_id1));
EXPECT_FALSE(navigation_state.IsValidFrame(frame_id1));
- navigation_state.TrackFrame(frame_id1, url1, true, false);
+ navigation_state.TrackFrame(frame_id1, frame_id0, url1, true, false);
navigation_state.SetNavigationCommitted(frame_id1);
EXPECT_TRUE(navigation_state.CanSendEvents(frame_id1));
EXPECT_TRUE(navigation_state.IsValidFrame(frame_id1));
@@ -32,7 +33,7 @@ TEST(FrameNavigationStateTest, TrackFrame) {
// Add a sub frame.
EXPECT_FALSE(navigation_state.CanSendEvents(frame_id2));
EXPECT_FALSE(navigation_state.IsValidFrame(frame_id2));
- navigation_state.TrackFrame(frame_id2, url2, false, false);
+ navigation_state.TrackFrame(frame_id2, frame_id1, url2, false, false);
navigation_state.SetNavigationCommitted(frame_id2);
EXPECT_TRUE(navigation_state.CanSendEvents(frame_id2));
EXPECT_TRUE(navigation_state.IsValidFrame(frame_id2));
@@ -57,39 +58,41 @@ TEST(FrameNavigationStateTest, TrackFrame) {
// before a new navigation happened in this frame.
TEST(FrameNavigationStateTest, ErrorState) {
FrameNavigationState navigation_state;
- const FrameNavigationState::FrameID frame_id(42, fake_rvh);
+ const FrameNavigationState::FrameID frame_id0(-1, fake_rvh);
+ const FrameNavigationState::FrameID frame_id1(42, fake_rvh);
const GURL url("http://www.google.com/");
- navigation_state.TrackFrame(frame_id, url, true, false);
- EXPECT_TRUE(navigation_state.CanSendEvents(frame_id));
- EXPECT_FALSE(navigation_state.GetErrorOccurredInFrame(frame_id));
+ navigation_state.TrackFrame(frame_id1, frame_id0, url, true, false);
+ EXPECT_TRUE(navigation_state.CanSendEvents(frame_id1));
+ EXPECT_FALSE(navigation_state.GetErrorOccurredInFrame(frame_id1));
// After an error occurred, no further events should be sent.
- navigation_state.SetErrorOccurredInFrame(frame_id);
- EXPECT_FALSE(navigation_state.CanSendEvents(frame_id));
- EXPECT_TRUE(navigation_state.GetErrorOccurredInFrame(frame_id));
+ navigation_state.SetErrorOccurredInFrame(frame_id1);
+ EXPECT_FALSE(navigation_state.CanSendEvents(frame_id1));
+ EXPECT_TRUE(navigation_state.GetErrorOccurredInFrame(frame_id1));
// Navigations to a network error page should be ignored.
- navigation_state.TrackFrame(frame_id, GURL(), true, true);
- EXPECT_FALSE(navigation_state.CanSendEvents(frame_id));
- EXPECT_TRUE(navigation_state.GetErrorOccurredInFrame(frame_id));
+ navigation_state.TrackFrame(frame_id1, frame_id0, GURL(), true, true);
+ EXPECT_FALSE(navigation_state.CanSendEvents(frame_id1));
+ EXPECT_TRUE(navigation_state.GetErrorOccurredInFrame(frame_id1));
// However, when the frame navigates again, it should send events again.
- navigation_state.TrackFrame(frame_id, url, true, false);
- EXPECT_TRUE(navigation_state.CanSendEvents(frame_id));
- EXPECT_FALSE(navigation_state.GetErrorOccurredInFrame(frame_id));
+ navigation_state.TrackFrame(frame_id1, frame_id0, url, true, false);
+ EXPECT_TRUE(navigation_state.CanSendEvents(frame_id1));
+ EXPECT_FALSE(navigation_state.GetErrorOccurredInFrame(frame_id1));
}
// Tests that for a sub frame, no events are send after an error occurred, but
// before a new navigation happened in this frame.
TEST(FrameNavigationStateTest, ErrorStateFrame) {
FrameNavigationState navigation_state;
+ const FrameNavigationState::FrameID frame_id0(-1, fake_rvh);
const FrameNavigationState::FrameID frame_id1(23, fake_rvh);
const FrameNavigationState::FrameID frame_id2(42, fake_rvh);
const GURL url("http://www.google.com/");
- navigation_state.TrackFrame(frame_id1, url, true, false);
- navigation_state.TrackFrame(frame_id2, url, false, false);
+ navigation_state.TrackFrame(frame_id1, frame_id0, url, true, false);
+ navigation_state.TrackFrame(frame_id2, frame_id1, url, false, false);
EXPECT_TRUE(navigation_state.CanSendEvents(frame_id1));
EXPECT_TRUE(navigation_state.CanSendEvents(frame_id2));
@@ -99,12 +102,12 @@ TEST(FrameNavigationStateTest, ErrorStateFrame) {
EXPECT_FALSE(navigation_state.CanSendEvents(frame_id2));
// Navigations to a network error page should be ignored.
- navigation_state.TrackFrame(frame_id2, GURL(), false, true);
+ navigation_state.TrackFrame(frame_id2, frame_id1, GURL(), false, true);
EXPECT_TRUE(navigation_state.CanSendEvents(frame_id1));
EXPECT_FALSE(navigation_state.CanSendEvents(frame_id2));
// However, when the frame navigates again, it should send events again.
- navigation_state.TrackFrame(frame_id2, url, false, false);
+ navigation_state.TrackFrame(frame_id2, frame_id1, url, false, false);
EXPECT_TRUE(navigation_state.CanSendEvents(frame_id1));
EXPECT_TRUE(navigation_state.CanSendEvents(frame_id2));
}
@@ -112,11 +115,29 @@ TEST(FrameNavigationStateTest, ErrorStateFrame) {
// Tests that no events are send for a not web-safe scheme.
TEST(FrameNavigationStateTest, WebSafeScheme) {
FrameNavigationState navigation_state;
- const FrameNavigationState::FrameID frame_id(23, fake_rvh);
+ const FrameNavigationState::FrameID frame_id0(-1, fake_rvh);
+ const FrameNavigationState::FrameID frame_id1(23, fake_rvh);
const GURL url("unsafe://www.google.com/");
- navigation_state.TrackFrame(frame_id, url, true, false);
- EXPECT_FALSE(navigation_state.CanSendEvents(frame_id));
+ navigation_state.TrackFrame(frame_id1, frame_id0, url, true, false);
+ EXPECT_FALSE(navigation_state.CanSendEvents(frame_id1));
+}
+
+// Test that parent frame IDs are tracked.
+TEST(FrameNavigationStateTest, ParentFrameID) {
+ FrameNavigationState navigation_state;
+ const FrameNavigationState::FrameID frame_id0(-1, fake_rvh);
+ const FrameNavigationState::FrameID frame_id1(23, fake_rvh);
+ const FrameNavigationState::FrameID frame_id2(42, fake_rvh);
+ const GURL url("http://www.google.com/");
+
+ navigation_state.TrackFrame(frame_id1, frame_id0, url, true, false);
+ navigation_state.TrackFrame(frame_id2, frame_id1, url, false, false);
+ EXPECT_TRUE(navigation_state.CanSendEvents(frame_id1));
+ EXPECT_TRUE(navigation_state.CanSendEvents(frame_id2));
+
+ EXPECT_TRUE(navigation_state.GetParentFrameID(frame_id1) == frame_id0);
+ EXPECT_TRUE(navigation_state.GetParentFrameID(frame_id2) == frame_id1);
}
} // namespace extensions

Powered by Google App Engine
This is Rietveld 408576698