| 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/cross_site_transferring_request.h" | 7 #include "content/browser/frame_host/cross_site_transferring_request.h" |
| 8 #include "content/browser/frame_host/interstitial_page_impl.h" | 8 #include "content/browser/frame_host/interstitial_page_impl.h" |
| 9 #include "content/browser/frame_host/navigation_entry_impl.h" | 9 #include "content/browser/frame_host/navigation_entry_impl.h" |
| 10 #include "content/browser/media/audio_stream_monitor.h" | 10 #include "content/browser/media/audio_stream_monitor.h" |
| (...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 293 }; | 293 }; |
| 294 | 294 |
| 295 // Pretends to be a normal browser that receives toggles and transitions to/from | 295 // Pretends to be a normal browser that receives toggles and transitions to/from |
| 296 // a fullscreened state. | 296 // a fullscreened state. |
| 297 class FakeFullscreenDelegate : public WebContentsDelegate { | 297 class FakeFullscreenDelegate : public WebContentsDelegate { |
| 298 public: | 298 public: |
| 299 FakeFullscreenDelegate() : fullscreened_contents_(NULL) {} | 299 FakeFullscreenDelegate() : fullscreened_contents_(NULL) {} |
| 300 ~FakeFullscreenDelegate() override {} | 300 ~FakeFullscreenDelegate() override {} |
| 301 | 301 |
| 302 void ToggleFullscreenModeForTab(WebContents* web_contents, | 302 void ToggleFullscreenModeForTab(WebContents* web_contents, |
| 303 const GURL& origin, |
| 303 bool enter_fullscreen) override { | 304 bool enter_fullscreen) override { |
| 304 fullscreened_contents_ = enter_fullscreen ? web_contents : NULL; | 305 fullscreened_contents_ = enter_fullscreen ? web_contents : NULL; |
| 305 } | 306 } |
| 306 | 307 |
| 307 bool IsFullscreenForTabOrPending( | 308 bool IsFullscreenForTabOrPending( |
| 308 const WebContents* web_contents) const override { | 309 const WebContents* web_contents) const override { |
| 309 return fullscreened_contents_ && web_contents == fullscreened_contents_; | 310 return fullscreened_contents_ && web_contents == fullscreened_contents_; |
| 310 } | 311 } |
| 311 | 312 |
| 312 private: | 313 private: |
| (...skipping 979 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1292 const GURL url("http://www.google.com"); | 1293 const GURL url("http://www.google.com"); |
| 1293 controller().LoadURL( | 1294 controller().LoadURL( |
| 1294 url, Referrer(), ui::PAGE_TRANSITION_TYPED, std::string()); | 1295 url, Referrer(), ui::PAGE_TRANSITION_TYPED, std::string()); |
| 1295 contents()->TestDidNavigate(orig_rfh, 1, url, ui::PAGE_TRANSITION_TYPED); | 1296 contents()->TestDidNavigate(orig_rfh, 1, url, ui::PAGE_TRANSITION_TYPED); |
| 1296 EXPECT_EQ(orig_rfh, contents()->GetMainFrame()); | 1297 EXPECT_EQ(orig_rfh, contents()->GetMainFrame()); |
| 1297 | 1298 |
| 1298 // Toggle fullscreen mode on (as if initiated via IPC from renderer). | 1299 // Toggle fullscreen mode on (as if initiated via IPC from renderer). |
| 1299 EXPECT_FALSE(orig_rvh->IsFullscreen()); | 1300 EXPECT_FALSE(orig_rvh->IsFullscreen()); |
| 1300 EXPECT_FALSE(contents()->IsFullscreenForCurrentTab()); | 1301 EXPECT_FALSE(contents()->IsFullscreenForCurrentTab()); |
| 1301 EXPECT_FALSE(fake_delegate.IsFullscreenForTabOrPending(contents())); | 1302 EXPECT_FALSE(fake_delegate.IsFullscreenForTabOrPending(contents())); |
| 1302 orig_rvh->OnMessageReceived( | 1303 orig_rfh->OnMessageReceived( |
| 1303 ViewHostMsg_ToggleFullscreen(orig_rvh->GetRoutingID(), true)); | 1304 FrameHostMsg_ToggleFullscreen(orig_rfh->GetRoutingID(), true)); |
| 1304 EXPECT_TRUE(orig_rvh->IsFullscreen()); | 1305 EXPECT_TRUE(orig_rvh->IsFullscreen()); |
| 1305 EXPECT_TRUE(contents()->IsFullscreenForCurrentTab()); | 1306 EXPECT_TRUE(contents()->IsFullscreenForCurrentTab()); |
| 1306 EXPECT_TRUE(fake_delegate.IsFullscreenForTabOrPending(contents())); | 1307 EXPECT_TRUE(fake_delegate.IsFullscreenForTabOrPending(contents())); |
| 1307 | 1308 |
| 1308 // Navigate to a new site. | 1309 // Navigate to a new site. |
| 1309 const GURL url2("http://www.yahoo.com"); | 1310 const GURL url2("http://www.yahoo.com"); |
| 1310 controller().LoadURL( | 1311 controller().LoadURL( |
| 1311 url2, Referrer(), ui::PAGE_TRANSITION_TYPED, std::string()); | 1312 url2, Referrer(), ui::PAGE_TRANSITION_TYPED, std::string()); |
| 1312 TestRenderFrameHost* const pending_rfh = contents()->GetPendingMainFrame(); | 1313 TestRenderFrameHost* const pending_rfh = contents()->GetPendingMainFrame(); |
| 1313 contents()->TestDidNavigate( | 1314 contents()->TestDidNavigate( |
| (...skipping 30 matching lines...) Expand all Loading... |
| 1344 contents()->TestDidNavigate(orig_rfh, 2, url2, ui::PAGE_TRANSITION_TYPED); | 1345 contents()->TestDidNavigate(orig_rfh, 2, url2, ui::PAGE_TRANSITION_TYPED); |
| 1345 EXPECT_EQ(orig_rfh, contents()->GetMainFrame()); | 1346 EXPECT_EQ(orig_rfh, contents()->GetMainFrame()); |
| 1346 | 1347 |
| 1347 // Sanity-check: Confirm we're not starting out in fullscreen mode. | 1348 // Sanity-check: Confirm we're not starting out in fullscreen mode. |
| 1348 EXPECT_FALSE(orig_rvh->IsFullscreen()); | 1349 EXPECT_FALSE(orig_rvh->IsFullscreen()); |
| 1349 EXPECT_FALSE(contents()->IsFullscreenForCurrentTab()); | 1350 EXPECT_FALSE(contents()->IsFullscreenForCurrentTab()); |
| 1350 EXPECT_FALSE(fake_delegate.IsFullscreenForTabOrPending(contents())); | 1351 EXPECT_FALSE(fake_delegate.IsFullscreenForTabOrPending(contents())); |
| 1351 | 1352 |
| 1352 for (int i = 0; i < 2; ++i) { | 1353 for (int i = 0; i < 2; ++i) { |
| 1353 // Toggle fullscreen mode on (as if initiated via IPC from renderer). | 1354 // Toggle fullscreen mode on (as if initiated via IPC from renderer). |
| 1354 orig_rvh->OnMessageReceived( | 1355 orig_rfh->OnMessageReceived( |
| 1355 ViewHostMsg_ToggleFullscreen(orig_rvh->GetRoutingID(), true)); | 1356 FrameHostMsg_ToggleFullscreen(orig_rfh->GetRoutingID(), true)); |
| 1356 EXPECT_TRUE(orig_rvh->IsFullscreen()); | 1357 EXPECT_TRUE(orig_rvh->IsFullscreen()); |
| 1357 EXPECT_TRUE(contents()->IsFullscreenForCurrentTab()); | 1358 EXPECT_TRUE(contents()->IsFullscreenForCurrentTab()); |
| 1358 EXPECT_TRUE(fake_delegate.IsFullscreenForTabOrPending(contents())); | 1359 EXPECT_TRUE(fake_delegate.IsFullscreenForTabOrPending(contents())); |
| 1359 | 1360 |
| 1360 // Navigate backward (or forward). | 1361 // Navigate backward (or forward). |
| 1361 if (i == 0) | 1362 if (i == 0) |
| 1362 controller().GoBack(); | 1363 controller().GoBack(); |
| 1363 else | 1364 else |
| 1364 controller().GoForward(); | 1365 controller().GoForward(); |
| 1365 EXPECT_FALSE(contents()->cross_navigation_pending()); | 1366 EXPECT_FALSE(contents()->cross_navigation_pending()); |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1402 const GURL url("http://www.google.com"); | 1403 const GURL url("http://www.google.com"); |
| 1403 controller().LoadURL( | 1404 controller().LoadURL( |
| 1404 url, Referrer(), ui::PAGE_TRANSITION_TYPED, std::string()); | 1405 url, Referrer(), ui::PAGE_TRANSITION_TYPED, std::string()); |
| 1405 contents()->TestDidNavigate( | 1406 contents()->TestDidNavigate( |
| 1406 contents()->GetMainFrame(), 1, url, ui::PAGE_TRANSITION_TYPED); | 1407 contents()->GetMainFrame(), 1, url, ui::PAGE_TRANSITION_TYPED); |
| 1407 | 1408 |
| 1408 // Toggle fullscreen mode on (as if initiated via IPC from renderer). | 1409 // Toggle fullscreen mode on (as if initiated via IPC from renderer). |
| 1409 EXPECT_FALSE(test_rvh()->IsFullscreen()); | 1410 EXPECT_FALSE(test_rvh()->IsFullscreen()); |
| 1410 EXPECT_FALSE(contents()->IsFullscreenForCurrentTab()); | 1411 EXPECT_FALSE(contents()->IsFullscreenForCurrentTab()); |
| 1411 EXPECT_FALSE(fake_delegate.IsFullscreenForTabOrPending(contents())); | 1412 EXPECT_FALSE(fake_delegate.IsFullscreenForTabOrPending(contents())); |
| 1412 test_rvh()->OnMessageReceived( | 1413 contents()->GetMainFrame()->OnMessageReceived(FrameHostMsg_ToggleFullscreen( |
| 1413 ViewHostMsg_ToggleFullscreen(test_rvh()->GetRoutingID(), true)); | 1414 contents()->GetMainFrame()->GetRoutingID(), true)); |
| 1414 EXPECT_TRUE(test_rvh()->IsFullscreen()); | 1415 EXPECT_TRUE(test_rvh()->IsFullscreen()); |
| 1415 EXPECT_TRUE(contents()->IsFullscreenForCurrentTab()); | 1416 EXPECT_TRUE(contents()->IsFullscreenForCurrentTab()); |
| 1416 EXPECT_TRUE(fake_delegate.IsFullscreenForTabOrPending(contents())); | 1417 EXPECT_TRUE(fake_delegate.IsFullscreenForTabOrPending(contents())); |
| 1417 | 1418 |
| 1418 // Crash the renderer. | 1419 // Crash the renderer. |
| 1419 test_rvh()->OnMessageReceived( | 1420 test_rvh()->OnMessageReceived( |
| 1420 ViewHostMsg_RenderProcessGone( | 1421 ViewHostMsg_RenderProcessGone( |
| 1421 0, base::TERMINATION_STATUS_PROCESS_CRASHED, -1)); | 1422 0, base::TERMINATION_STATUS_PROCESS_CRASHED, -1)); |
| 1422 | 1423 |
| 1423 // Confirm fullscreen has exited. | 1424 // Confirm fullscreen has exited. |
| (...skipping 1364 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2788 | 2789 |
| 2789 // Destroy the remote player. No power save blockers should remain. | 2790 // Destroy the remote player. No power save blockers should remain. |
| 2790 rfh->OnMessageReceived( | 2791 rfh->OnMessageReceived( |
| 2791 FrameHostMsg_MediaPausedNotification(0, kPlayerRemoteId)); | 2792 FrameHostMsg_MediaPausedNotification(0, kPlayerRemoteId)); |
| 2792 EXPECT_FALSE(contents()->has_video_power_save_blocker_for_testing()); | 2793 EXPECT_FALSE(contents()->has_video_power_save_blocker_for_testing()); |
| 2793 EXPECT_FALSE(contents()->has_audio_power_save_blocker_for_testing()); | 2794 EXPECT_FALSE(contents()->has_audio_power_save_blocker_for_testing()); |
| 2794 } | 2795 } |
| 2795 #endif | 2796 #endif |
| 2796 | 2797 |
| 2797 } // namespace content | 2798 } // namespace content |
| OLD | NEW |