Chromium Code Reviews| 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 "content/browser/site_per_process_browsertest.h" | 5 #include "content/browser/site_per_process_browsertest.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/strings/stringprintf.h" | 8 #include "base/strings/stringprintf.h" |
| 9 #include "content/browser/frame_host/cross_process_frame_connector.h" | 9 #include "content/browser/frame_host/cross_process_frame_connector.h" |
| 10 #include "content/browser/frame_host/frame_tree.h" | 10 #include "content/browser/frame_host/frame_tree.h" |
| (...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 291 child->current_frame_host()->GetSiteInstance()); | 291 child->current_frame_host()->GetSiteInstance()); |
| 292 EXPECT_NE(shell()->web_contents()->GetRenderProcessHost(), | 292 EXPECT_NE(shell()->web_contents()->GetRenderProcessHost(), |
| 293 child->current_frame_host()->GetProcess()); | 293 child->current_frame_host()->GetProcess()); |
| 294 EXPECT_NE(rph, child->current_frame_host()->GetProcess()); | 294 EXPECT_NE(rph, child->current_frame_host()->GetProcess()); |
| 295 { | 295 { |
| 296 std::set<RenderWidgetHostView*> views_set = | 296 std::set<RenderWidgetHostView*> views_set = |
| 297 static_cast<WebContentsImpl*>(shell()->web_contents()) | 297 static_cast<WebContentsImpl*>(shell()->web_contents()) |
| 298 ->GetRenderWidgetHostViewsInTree(); | 298 ->GetRenderWidgetHostViewsInTree(); |
| 299 EXPECT_EQ(2U, views_set.size()); | 299 EXPECT_EQ(2U, views_set.size()); |
| 300 } | 300 } |
| 301 EXPECT_EQ(proxy_to_parent, child->render_manager()->GetProxyToParent()); | 301 EXPECT_NE(proxy_to_parent, child->render_manager()->GetProxyToParent()); |
|
nasko
2014/10/27 22:52:54
Hmm, why is that? The proxy object for the parent
Nate Chapin
2014/10/28 19:59:20
I would have thought that the child changing proce
Charlie Reis
2014/10/28 20:10:10
I'll defer to Nasko (or Ken) here, but let's figur
nasko
2014/10/28 21:58:14
When a child frame navigates, it changes process,
Nate Chapin
2014/10/29 20:39:42
Ah, I think I understand this now. The problem has
Charlie Reis
2014/10/29 21:28:32
Nasko: Actually, I think Nate found an interesting
Nate Chapin
2014/10/30 19:00:50
Nasko tells me this should be resolved once https:
| |
| 302 proxy_to_parent = child->render_manager()->GetProxyToParent(); | |
| 303 EXPECT_TRUE(proxy_to_parent); | |
| 302 EXPECT_TRUE(proxy_to_parent->cross_process_frame_connector()); | 304 EXPECT_TRUE(proxy_to_parent->cross_process_frame_connector()); |
| 303 EXPECT_EQ( | 305 EXPECT_EQ( |
| 304 child->current_frame_host()->render_view_host()->GetView(), | 306 child->current_frame_host()->render_view_host()->GetView(), |
| 305 proxy_to_parent->cross_process_frame_connector()->get_view_for_testing()); | 307 proxy_to_parent->cross_process_frame_connector()->get_view_for_testing()); |
| 306 } | 308 } |
| 307 | 309 |
| 308 // It times out on Android, so disabled while investigating. | 310 // It times out on Android, so disabled while investigating. |
| 309 // http://crbug.com/399775 | 311 // http://crbug.com/399775 |
| 310 #if defined(OS_ANDROID) | 312 #if defined(OS_ANDROID) |
| 311 #define MAYBE_NavigateRemoteFrame DISABLED_NavigateRemoteFrame | 313 #define MAYBE_NavigateRemoteFrame DISABLED_NavigateRemoteFrame |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 355 | 357 |
| 356 // Check again that a new process is created and is different from the | 358 // Check again that a new process is created and is different from the |
| 357 // top level one and the previous one. | 359 // top level one and the previous one. |
| 358 ASSERT_EQ(2U, root->child_count()); | 360 ASSERT_EQ(2U, root->child_count()); |
| 359 child = root->child_at(0); | 361 child = root->child_at(0); |
| 360 EXPECT_NE(shell()->web_contents()->GetSiteInstance(), | 362 EXPECT_NE(shell()->web_contents()->GetSiteInstance(), |
| 361 child->current_frame_host()->GetSiteInstance()); | 363 child->current_frame_host()->GetSiteInstance()); |
| 362 EXPECT_NE(site_instance, | 364 EXPECT_NE(site_instance, |
| 363 child->current_frame_host()->GetSiteInstance()); | 365 child->current_frame_host()->GetSiteInstance()); |
| 364 | 366 |
| 365 // TODO(japhet): This currently causes an assertion in the renderer process. | 367 // TODO(japhet): This currently causes an assertion in the renderer process. |
|
nasko
2014/10/27 22:52:54
The comment is no longer needed if this is indeed
Nate Chapin
2014/10/28 19:59:20
Will update to describe what this block actually d
| |
| 366 // Enable when the assertion is fixed. | 368 // Enable when the assertion is fixed. |
| 367 //NavigateFrameToURL(child, http_url); | 369 NavigateFrameToURL(child, http_url); |
| 368 //EXPECT_EQ(http_url, observer.navigation_url()); | 370 EXPECT_EQ(http_url, observer.navigation_url()); |
| 369 //EXPECT_TRUE(observer.navigation_succeeded()); | 371 EXPECT_TRUE(observer.navigation_succeeded()); |
| 370 //EXPECT_EQ(shell()->web_contents()->GetSiteInstance(), | 372 EXPECT_EQ(shell()->web_contents()->GetSiteInstance(), |
| 371 // child->current_frame_host()->GetSiteInstance()); | 373 child->current_frame_host()->GetSiteInstance()); |
| 372 } | 374 } |
| 373 | 375 |
| 374 // Crash a subframe and ensures its children are cleared from the FrameTree. | 376 // Crash a subframe and ensures its children are cleared from the FrameTree. |
| 375 // See http://crbug.com/338508. | 377 // See http://crbug.com/338508. |
| 376 // TODO(creis): Disabled for flakiness; see http://crbug.com/405582. | 378 // TODO(creis): Disabled for flakiness; see http://crbug.com/405582. |
| 377 // TODO(creis): Enable this on Android when we can kill the process there. | 379 // TODO(creis): Enable this on Android when we can kill the process there. |
| 378 IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, DISABLED_CrashSubframe) { | 380 IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, DISABLED_CrashSubframe) { |
| 379 GURL main_url(embedded_test_server()->GetURL("/site_per_process_main.html")); | 381 GURL main_url(embedded_test_server()->GetURL("/site_per_process_main.html")); |
| 380 NavigateToURL(shell(), main_url); | 382 NavigateToURL(shell(), main_url); |
| 381 | 383 |
| (...skipping 381 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 763 } | 765 } |
| 764 | 766 |
| 765 navigation_observer.Wait(); | 767 navigation_observer.Wait(); |
| 766 EXPECT_EQ(cross_site_url, observer.navigation_url()); | 768 EXPECT_EQ(cross_site_url, observer.navigation_url()); |
| 767 EXPECT_TRUE(observer.navigation_succeeded()); | 769 EXPECT_TRUE(observer.navigation_succeeded()); |
| 768 EXPECT_EQ(0U, child->child_count()); | 770 EXPECT_EQ(0U, child->child_count()); |
| 769 } | 771 } |
| 770 } | 772 } |
| 771 | 773 |
| 772 } // namespace content | 774 } // namespace content |
| OLD | NEW |