| 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/path_service.h" | 5 #include "base/path_service.h" | 
| 6 #include "base/strings/utf_string_conversions.h" | 6 #include "base/strings/utf_string_conversions.h" | 
| 7 #include "content/browser/child_process_security_policy_impl.h" | 7 #include "content/browser/child_process_security_policy_impl.h" | 
| 8 #include "content/browser/frame_host/render_frame_host_impl.h" | 8 #include "content/browser/frame_host/render_frame_host_impl.h" | 
| 9 #include "content/common/input_messages.h" | 9 #include "content/common/input_messages.h" | 
| 10 #include "content/common/view_messages.h" | 10 #include "content/common/view_messages.h" | 
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 65   ASSERT_TRUE(controller().GetVisibleEntry()); | 65   ASSERT_TRUE(controller().GetVisibleEntry()); | 
| 66   EXPECT_EQ(GURL(kAboutBlankURL), controller().GetVisibleEntry()->GetURL()); | 66   EXPECT_EQ(GURL(kAboutBlankURL), controller().GetVisibleEntry()->GetURL()); | 
| 67 } | 67 } | 
| 68 | 68 | 
| 69 // Create a full screen popup RenderWidgetHost and View. | 69 // Create a full screen popup RenderWidgetHost and View. | 
| 70 TEST_F(RenderViewHostTest, CreateFullscreenWidget) { | 70 TEST_F(RenderViewHostTest, CreateFullscreenWidget) { | 
| 71   int routing_id = process()->GetNextRoutingID(); | 71   int routing_id = process()->GetNextRoutingID(); | 
| 72   test_rvh()->CreateNewFullscreenWidget(routing_id); | 72   test_rvh()->CreateNewFullscreenWidget(routing_id); | 
| 73 } | 73 } | 
| 74 | 74 | 
| 75 // Makes sure that RenderViewHost::is_waiting_for_unload_ack_ is false when | 75 // Makes sure that the RenderViewHost is not waiting for an unload ack when | 
| 76 // reloading a page. If is_waiting_for_unload_ack_ is not false when reloading | 76 // reloading a page. If this is not the case, when reloading, the contents may | 
| 77 // the contents may get closed out even though the user pressed the reload | 77 // get closed out even though the user pressed the reload button. | 
| 78 // button. |  | 
| 79 TEST_F(RenderViewHostTest, ResetUnloadOnReload) { | 78 TEST_F(RenderViewHostTest, ResetUnloadOnReload) { | 
| 80   const GURL url1("http://foo1"); | 79   const GURL url1("http://foo1"); | 
| 81   const GURL url2("http://foo2"); | 80   const GURL url2("http://foo2"); | 
| 82 | 81 | 
| 83   // This test is for a subtle timing bug. Here's the sequence that triggered | 82   // This test is for a subtle timing bug. Here's the sequence that triggered | 
| 84   // the bug: | 83   // the bug: | 
| 85   // . go to a page. | 84   // . go to a page. | 
| 86   // . go to a new page, preferably one that takes a while to resolve, such | 85   // . go to a new page, preferably one that takes a while to resolve, such | 
| 87   //   as one on a site that doesn't exist. | 86   //   as one on a site that doesn't exist. | 
| 88   //   . After this step is_waiting_for_unload_ack_ has been set to true on | 87   //   . After this step IsWaitingForUnloadACK returns true on the first RVH. | 
| 89   //     the first RVH. |  | 
| 90   // . click stop before the page has been commited. | 88   // . click stop before the page has been commited. | 
| 91   // . click reload. | 89   // . click reload. | 
| 92   //   . is_waiting_for_unload_ack_ is still true, and the if the hang monitor | 90   //   . IsWaitingForUnloadACK still returns true, and if the hang monitor fires | 
| 93   //     fires the contents gets closed. | 91   //     the contents gets closed. | 
| 94 | 92 | 
| 95   NavigateAndCommit(url1); | 93   NavigateAndCommit(url1); | 
| 96   controller().LoadURL( | 94   controller().LoadURL( | 
| 97       url2, Referrer(), PAGE_TRANSITION_LINK, std::string()); | 95       url2, Referrer(), PAGE_TRANSITION_LINK, std::string()); | 
| 98   // Simulate the ClosePage call which is normally sent by the net::URLRequest. | 96   // Simulate the ClosePage call which is normally sent by the net::URLRequest. | 
| 99   rvh()->ClosePage(); | 97   rvh()->ClosePage(); | 
| 100   // Needed so that navigations are not suspended on the RVH. | 98   // Needed so that navigations are not suspended on the RVH. | 
| 101   test_rvh()->SendShouldCloseACK(true); | 99   test_rvh()->SendShouldCloseACK(true); | 
| 102   contents()->Stop(); | 100   contents()->Stop(); | 
| 103   controller().Reload(false); | 101   controller().Reload(false); | 
| 104   EXPECT_FALSE(test_rvh()->is_waiting_for_unload_ack()); | 102   EXPECT_FALSE(test_rvh()->IsWaitingForUnloadACK()); | 
| 105 } | 103 } | 
| 106 | 104 | 
| 107 // Ensure we do not grant bindings to a process shared with unprivileged views. | 105 // Ensure we do not grant bindings to a process shared with unprivileged views. | 
| 108 TEST_F(RenderViewHostTest, DontGrantBindingsToSharedProcess) { | 106 TEST_F(RenderViewHostTest, DontGrantBindingsToSharedProcess) { | 
| 109   // Create another view in the same process. | 107   // Create another view in the same process. | 
| 110   scoped_ptr<TestWebContents> new_web_contents( | 108   scoped_ptr<TestWebContents> new_web_contents( | 
| 111       TestWebContents::Create(browser_context(), rvh()->GetSiteInstance())); | 109       TestWebContents::Create(browser_context(), rvh()->GetSiteInstance())); | 
| 112 | 110 | 
| 113   rvh()->AllowBindings(BINDINGS_POLICY_WEB_UI); | 111   rvh()->AllowBindings(BINDINGS_POLICY_WEB_UI); | 
| 114   EXPECT_FALSE(rvh()->GetEnabledBindings() & BINDINGS_POLICY_WEB_UI); | 112   EXPECT_FALSE(rvh()->GetEnabledBindings() & BINDINGS_POLICY_WEB_UI); | 
| (...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 289 } | 287 } | 
| 290 | 288 | 
| 291 TEST_F(RenderViewHostTest, RoutingIdSane) { | 289 TEST_F(RenderViewHostTest, RoutingIdSane) { | 
| 292   RenderFrameHostImpl* root_rfh = | 290   RenderFrameHostImpl* root_rfh = | 
| 293       contents()->GetFrameTree()->root()->current_frame_host(); | 291       contents()->GetFrameTree()->root()->current_frame_host(); | 
| 294   EXPECT_EQ(test_rvh()->GetProcess(), root_rfh->GetProcess()); | 292   EXPECT_EQ(test_rvh()->GetProcess(), root_rfh->GetProcess()); | 
| 295   EXPECT_NE(test_rvh()->GetRoutingID(), root_rfh->routing_id()); | 293   EXPECT_NE(test_rvh()->GetRoutingID(), root_rfh->routing_id()); | 
| 296 } | 294 } | 
| 297 | 295 | 
| 298 }  // namespace content | 296 }  // namespace content | 
| OLD | NEW | 
|---|