OLD | NEW |
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 "base/logging.h" | 5 #include "base/logging.h" |
6 #include "base/strings/utf_string_conversions.h" | 6 #include "base/strings/utf_string_conversions.h" |
7 #include "content/browser/frame_host/interstitial_page_impl.h" | 7 #include "content/browser/frame_host/interstitial_page_impl.h" |
8 #include "content/browser/frame_host/navigation_entry_impl.h" | 8 #include "content/browser/frame_host/navigation_entry_impl.h" |
9 #include "content/browser/renderer_host/render_view_host_impl.h" | 9 #include "content/browser/renderer_host/render_view_host_impl.h" |
10 #include "content/browser/site_instance_impl.h" | 10 #include "content/browser/site_instance_impl.h" |
11 #include "content/browser/webui/web_ui_controller_factory_registry.h" | 11 #include "content/browser/webui/web_ui_controller_factory_registry.h" |
| 12 #include "content/common/frame_messages.h" |
12 #include "content/common/view_messages.h" | 13 #include "content/common/view_messages.h" |
13 #include "content/public/browser/global_request_id.h" | 14 #include "content/public/browser/global_request_id.h" |
14 #include "content/public/browser/interstitial_page_delegate.h" | 15 #include "content/public/browser/interstitial_page_delegate.h" |
15 #include "content/public/browser/navigation_details.h" | 16 #include "content/public/browser/navigation_details.h" |
16 #include "content/public/browser/notification_details.h" | 17 #include "content/public/browser/notification_details.h" |
17 #include "content/public/browser/notification_source.h" | 18 #include "content/public/browser/notification_source.h" |
18 #include "content/public/browser/render_widget_host_view.h" | 19 #include "content/public/browser/render_widget_host_view.h" |
19 #include "content/public/browser/web_contents_observer.h" | 20 #include "content/public/browser/web_contents_observer.h" |
20 #include "content/public/browser/web_ui_controller.h" | 21 #include "content/public/browser/web_ui_controller.h" |
21 #include "content/public/common/bindings_policy.h" | 22 #include "content/public/common/bindings_policy.h" |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
144 int command_received_count() const { | 145 int command_received_count() const { |
145 return command_received_count_; | 146 return command_received_count_; |
146 } | 147 } |
147 | 148 |
148 void TestDomOperationResponse(const std::string& json_string) { | 149 void TestDomOperationResponse(const std::string& json_string) { |
149 if (enabled()) | 150 if (enabled()) |
150 CommandReceived(); | 151 CommandReceived(); |
151 } | 152 } |
152 | 153 |
153 void TestDidNavigate(int page_id, const GURL& url) { | 154 void TestDidNavigate(int page_id, const GURL& url) { |
154 ViewHostMsg_FrameNavigate_Params params; | 155 FrameHostMsg_DidCommitProvisionalLoad_Params params; |
155 InitNavigateParams(¶ms, page_id, url, PAGE_TRANSITION_TYPED); | 156 InitNavigateParams(¶ms, page_id, url, PAGE_TRANSITION_TYPED); |
156 DidNavigate(GetRenderViewHostForTesting(), params); | 157 DidNavigate(GetRenderViewHostForTesting(), params); |
157 } | 158 } |
158 | 159 |
159 void TestRenderViewTerminated(base::TerminationStatus status, | 160 void TestRenderViewTerminated(base::TerminationStatus status, |
160 int error_code) { | 161 int error_code) { |
161 RenderViewTerminated(GetRenderViewHostForTesting(), status, error_code); | 162 RenderViewTerminated(GetRenderViewHostForTesting(), status, error_code); |
162 } | 163 } |
163 | 164 |
164 bool is_showing() const { | 165 bool is_showing() const { |
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
291 | 292 |
292 DISALLOW_COPY_AND_ASSIGN(TestWebContentsObserver); | 293 DISALLOW_COPY_AND_ASSIGN(TestWebContentsObserver); |
293 }; | 294 }; |
294 | 295 |
295 } // namespace | 296 } // namespace |
296 | 297 |
297 // Test to make sure that title updates get stripped of whitespace. | 298 // Test to make sure that title updates get stripped of whitespace. |
298 TEST_F(WebContentsImplTest, UpdateTitle) { | 299 TEST_F(WebContentsImplTest, UpdateTitle) { |
299 NavigationControllerImpl& cont = | 300 NavigationControllerImpl& cont = |
300 static_cast<NavigationControllerImpl&>(controller()); | 301 static_cast<NavigationControllerImpl&>(controller()); |
301 ViewHostMsg_FrameNavigate_Params params; | 302 FrameHostMsg_DidCommitProvisionalLoad_Params params; |
302 InitNavigateParams(¶ms, 0, GURL(kAboutBlankURL), PAGE_TRANSITION_TYPED); | 303 InitNavigateParams(¶ms, 0, GURL(kAboutBlankURL), PAGE_TRANSITION_TYPED); |
303 | 304 |
304 LoadCommittedDetails details; | 305 LoadCommittedDetails details; |
305 cont.RendererDidNavigate(test_rvh(), params, &details); | 306 cont.RendererDidNavigate(test_rvh(), params, &details); |
306 | 307 |
307 contents()->UpdateTitle(rvh(), 0, | 308 contents()->UpdateTitle(rvh(), 0, |
308 base::ASCIIToUTF16(" Lots O' Whitespace\n"), | 309 base::ASCIIToUTF16(" Lots O' Whitespace\n"), |
309 base::i18n::LEFT_TO_RIGHT); | 310 base::i18n::LEFT_TO_RIGHT); |
310 EXPECT_EQ(base::ASCIIToUTF16("Lots O' Whitespace"), contents()->GetTitle()); | 311 EXPECT_EQ(base::ASCIIToUTF16("Lots O' Whitespace"), contents()->GetTitle()); |
311 } | 312 } |
(...skipping 27 matching lines...) Expand all Loading... |
339 | 340 |
340 process()->sink().ClearMessages(); | 341 process()->sink().ClearMessages(); |
341 | 342 |
342 cont.LoadURL( | 343 cont.LoadURL( |
343 kGURL, Referrer(), PAGE_TRANSITION_TYPED, std::string()); | 344 kGURL, Referrer(), PAGE_TRANSITION_TYPED, std::string()); |
344 rvh()->GetDelegate()->RenderViewCreated(rvh()); | 345 rvh()->GetDelegate()->RenderViewCreated(rvh()); |
345 // Did we get the expected message? | 346 // Did we get the expected message? |
346 EXPECT_TRUE(process()->sink().GetFirstMessageMatching( | 347 EXPECT_TRUE(process()->sink().GetFirstMessageMatching( |
347 ViewMsg_EnableViewSourceMode::ID)); | 348 ViewMsg_EnableViewSourceMode::ID)); |
348 | 349 |
349 ViewHostMsg_FrameNavigate_Params params; | 350 FrameHostMsg_DidCommitProvisionalLoad_Params params; |
350 InitNavigateParams(¶ms, 0, kGURL, PAGE_TRANSITION_TYPED); | 351 InitNavigateParams(¶ms, 0, kGURL, PAGE_TRANSITION_TYPED); |
351 LoadCommittedDetails details; | 352 LoadCommittedDetails details; |
352 cont.RendererDidNavigate(test_rvh(), params, &details); | 353 cont.RendererDidNavigate(test_rvh(), params, &details); |
353 // Also check title and url. | 354 // Also check title and url. |
354 EXPECT_EQ(base::ASCIIToUTF16(kUrl), contents()->GetTitle()); | 355 EXPECT_EQ(base::ASCIIToUTF16(kUrl), contents()->GetTitle()); |
355 } | 356 } |
356 | 357 |
357 // Test to ensure UpdateMaxPageID is working properly. | 358 // Test to ensure UpdateMaxPageID is working properly. |
358 TEST_F(WebContentsImplTest, UpdateMaxPageID) { | 359 TEST_F(WebContentsImplTest, UpdateMaxPageID) { |
359 SiteInstance* instance1 = contents()->GetSiteInstance(); | 360 SiteInstance* instance1 = contents()->GetSiteInstance(); |
(...skipping 726 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1086 std::vector<GURL> url_chain; | 1087 std::vector<GURL> url_chain; |
1087 url_chain.push_back(GURL()); | 1088 url_chain.push_back(GURL()); |
1088 contents()->GetRenderManagerForTesting()->OnCrossSiteResponse( | 1089 contents()->GetRenderManagerForTesting()->OnCrossSiteResponse( |
1089 pending_rvh, GlobalRequestID(0, 0), false, url_chain, Referrer(), | 1090 pending_rvh, GlobalRequestID(0, 0), false, url_chain, Referrer(), |
1090 PAGE_TRANSITION_TYPED, 1, false); | 1091 PAGE_TRANSITION_TYPED, 1, false); |
1091 | 1092 |
1092 // Suppose the original renderer navigates now, while the unload request is in | 1093 // Suppose the original renderer navigates now, while the unload request is in |
1093 // flight. We should ignore it, wait for the unload ack, and let the pending | 1094 // flight. We should ignore it, wait for the unload ack, and let the pending |
1094 // request continue. Otherwise, the contents may close spontaneously or stop | 1095 // request continue. Otherwise, the contents may close spontaneously or stop |
1095 // responding to navigation requests. (See bug 23942.) | 1096 // responding to navigation requests. (See bug 23942.) |
1096 ViewHostMsg_FrameNavigate_Params params1a; | 1097 FrameHostMsg_DidCommitProvisionalLoad_Params params1a; |
1097 InitNavigateParams(¶ms1a, 2, GURL("http://www.google.com/foo"), | 1098 InitNavigateParams(¶ms1a, 2, GURL("http://www.google.com/foo"), |
1098 PAGE_TRANSITION_TYPED); | 1099 PAGE_TRANSITION_TYPED); |
1099 orig_rvh->SendNavigate(2, GURL("http://www.google.com/foo")); | 1100 orig_rvh->SendNavigate(2, GURL("http://www.google.com/foo")); |
1100 | 1101 |
1101 // Verify that the pending navigation is still in progress. | 1102 // Verify that the pending navigation is still in progress. |
1102 EXPECT_TRUE(contents()->cross_navigation_pending()); | 1103 EXPECT_TRUE(contents()->cross_navigation_pending()); |
1103 EXPECT_TRUE(contents()->GetPendingRenderViewHost() != NULL); | 1104 EXPECT_TRUE(contents()->GetPendingRenderViewHost() != NULL); |
1104 | 1105 |
1105 // DidNavigate from the pending page should commit it. | 1106 // DidNavigate from the pending page should commit it. |
1106 contents()->TestDidNavigate( | 1107 contents()->TestDidNavigate( |
(...skipping 1057 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2164 TEST_F(WebContentsImplTest, PendingContents) { | 2165 TEST_F(WebContentsImplTest, PendingContents) { |
2165 scoped_ptr<TestWebContents> other_contents( | 2166 scoped_ptr<TestWebContents> other_contents( |
2166 static_cast<TestWebContents*>(CreateTestWebContents())); | 2167 static_cast<TestWebContents*>(CreateTestWebContents())); |
2167 contents()->AddPendingContents(other_contents.get()); | 2168 contents()->AddPendingContents(other_contents.get()); |
2168 int route_id = other_contents->GetRenderViewHost()->GetRoutingID(); | 2169 int route_id = other_contents->GetRenderViewHost()->GetRoutingID(); |
2169 other_contents.reset(); | 2170 other_contents.reset(); |
2170 EXPECT_EQ(NULL, contents()->GetCreatedWindow(route_id)); | 2171 EXPECT_EQ(NULL, contents()->GetCreatedWindow(route_id)); |
2171 } | 2172 } |
2172 | 2173 |
2173 } // namespace content | 2174 } // namespace content |
OLD | NEW |