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

Side by Side Diff: third_party/WebKit/Source/web/tests/WebFrameTest.cpp

Issue 2855843002: Reland "Sync requestFullscreen() and exitFullscreen() algorithms with the spec" (Closed)
Patch Set: Reland "Sync requestFullscreen() and exitFullscreen() algorithms with the spec" Created 3 years, 6 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2010 Google Inc. All rights reserved. 2 * Copyright (C) 2010 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 8044 matching lines...) Expand 10 before | Expand all | Expand 10 after
8055 base_url_ + "fullscreen_div.html", true, nullptr, &client, nullptr, 8055 base_url_ + "fullscreen_div.html", true, nullptr, &client, nullptr,
8056 ConfigureAndroid); 8056 ConfigureAndroid);
8057 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 8057 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
8058 web_view_impl->UpdateAllLifecyclePhases(); 8058 web_view_impl->UpdateAllLifecyclePhases();
8059 8059
8060 Document* document = 8060 Document* document =
8061 web_view_impl->MainFrameImpl()->GetFrame()->GetDocument(); 8061 web_view_impl->MainFrameImpl()->GetFrame()->GetDocument();
8062 UserGestureIndicator gesture(UserGestureToken::Create(document)); 8062 UserGestureIndicator gesture(UserGestureToken::Create(document));
8063 Element* div_fullscreen = document->getElementById("div1"); 8063 Element* div_fullscreen = document->getElementById("div1");
8064 Fullscreen::RequestFullscreen(*div_fullscreen); 8064 Fullscreen::RequestFullscreen(*div_fullscreen);
8065 EXPECT_EQ(nullptr, Fullscreen::CurrentFullScreenElementFrom(*document));
8066 EXPECT_EQ(div_fullscreen, Fullscreen::FullscreenElementFrom(*document));
8067 web_view_impl->DidEnterFullscreen(); 8065 web_view_impl->DidEnterFullscreen();
8068 EXPECT_EQ(div_fullscreen, 8066 EXPECT_EQ(nullptr, Fullscreen::FullscreenElementFrom(*document));
8069 Fullscreen::CurrentFullScreenElementFrom(*document)); 8067 web_view_impl->BeginFrame(WTF::MonotonicallyIncreasingTime());
8070 EXPECT_EQ(div_fullscreen, Fullscreen::FullscreenElementFrom(*document)); 8068 EXPECT_EQ(div_fullscreen, Fullscreen::FullscreenElementFrom(*document));
8071 web_view_impl->UpdateAllLifecyclePhases(); 8069 web_view_impl->UpdateAllLifecyclePhases();
8072 EXPECT_EQ(div_fullscreen,
8073 Fullscreen::CurrentFullScreenElementFrom(*document));
8074 EXPECT_EQ(div_fullscreen, Fullscreen::FullscreenElementFrom(*document));
8075 8070
8076 // Verify that the element is sized to the viewport. 8071 // Verify that the element is sized to the viewport.
8077 LayoutFullScreen* fullscreen_layout_object = 8072 LayoutFullScreen* fullscreen_layout_object =
8078 Fullscreen::From(*document).FullScreenLayoutObject(); 8073 Fullscreen::From(*document).FullScreenLayoutObject();
8079 EXPECT_EQ(viewport_width, fullscreen_layout_object->LogicalWidth().ToInt()); 8074 EXPECT_EQ(viewport_width, fullscreen_layout_object->LogicalWidth().ToInt());
8080 EXPECT_EQ(viewport_height, fullscreen_layout_object->LogicalHeight().ToInt()); 8075 EXPECT_EQ(viewport_height, fullscreen_layout_object->LogicalHeight().ToInt());
8081 8076
8082 // Verify it's updated after a device rotation. 8077 // Verify it's updated after a device rotation.
8083 client.screen_info_.rect.width = viewport_height; 8078 client.screen_info_.rect.width = viewport_height;
8084 client.screen_info_.rect.height = viewport_width; 8079 client.screen_info_.rect.height = viewport_width;
(...skipping 13 matching lines...) Expand all
8098 base_url_ + "fullscreen_div.html", true, nullptr, &client, nullptr, 8093 base_url_ + "fullscreen_div.html", true, nullptr, &client, nullptr,
8099 ConfigureAndroid); 8094 ConfigureAndroid);
8100 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 8095 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
8101 web_view_impl->UpdateAllLifecyclePhases(); 8096 web_view_impl->UpdateAllLifecyclePhases();
8102 8097
8103 Document* document = 8098 Document* document =
8104 web_view_impl->MainFrameImpl()->GetFrame()->GetDocument(); 8099 web_view_impl->MainFrameImpl()->GetFrame()->GetDocument();
8105 UserGestureIndicator gesture(UserGestureToken::Create(document)); 8100 UserGestureIndicator gesture(UserGestureToken::Create(document));
8106 Element* div_fullscreen = document->getElementById("div1"); 8101 Element* div_fullscreen = document->getElementById("div1");
8107 Fullscreen::RequestFullscreen(*div_fullscreen); 8102 Fullscreen::RequestFullscreen(*div_fullscreen);
8108 EXPECT_EQ(nullptr, Fullscreen::CurrentFullScreenElementFrom(*document));
8109 EXPECT_EQ(div_fullscreen, Fullscreen::FullscreenElementFrom(*document));
8110 web_view_impl->DidEnterFullscreen(); 8103 web_view_impl->DidEnterFullscreen();
8111 EXPECT_EQ(div_fullscreen, 8104 EXPECT_EQ(nullptr, Fullscreen::FullscreenElementFrom(*document));
8112 Fullscreen::CurrentFullScreenElementFrom(*document)); 8105 web_view_impl->BeginFrame(WTF::MonotonicallyIncreasingTime());
8113 EXPECT_EQ(div_fullscreen, Fullscreen::FullscreenElementFrom(*document)); 8106 EXPECT_EQ(div_fullscreen, Fullscreen::FullscreenElementFrom(*document));
8114 web_view_impl->UpdateAllLifecyclePhases(); 8107 web_view_impl->UpdateAllLifecyclePhases();
8115 EXPECT_EQ(div_fullscreen,
8116 Fullscreen::CurrentFullScreenElementFrom(*document));
8117 EXPECT_EQ(div_fullscreen, Fullscreen::FullscreenElementFrom(*document));
8118 8108
8119 // Verify that the viewports are nonscrollable. 8109 // Verify that the viewports are nonscrollable.
8120 LocalFrameView* frame_view = 8110 LocalFrameView* frame_view =
8121 web_view_helper.WebView()->MainFrameImpl()->GetFrameView(); 8111 web_view_helper.WebView()->MainFrameImpl()->GetFrameView();
8122 WebLayer* layout_viewport_scroll_layer = 8112 WebLayer* layout_viewport_scroll_layer =
8123 web_view_impl->Compositor()->ScrollLayer()->PlatformLayer(); 8113 web_view_impl->Compositor()->ScrollLayer()->PlatformLayer();
8124 WebLayer* visual_viewport_scroll_layer = 8114 WebLayer* visual_viewport_scroll_layer =
8125 frame_view->GetPage()->GetVisualViewport().ScrollLayer()->PlatformLayer(); 8115 frame_view->GetPage()->GetVisualViewport().ScrollLayer()->PlatformLayer();
8126 ASSERT_FALSE(layout_viewport_scroll_layer->UserScrollableHorizontal()); 8116 ASSERT_FALSE(layout_viewport_scroll_layer->UserScrollableHorizontal());
8127 ASSERT_FALSE(layout_viewport_scroll_layer->UserScrollableVertical()); 8117 ASSERT_FALSE(layout_viewport_scroll_layer->UserScrollableVertical());
8128 ASSERT_FALSE(visual_viewport_scroll_layer->UserScrollableHorizontal()); 8118 ASSERT_FALSE(visual_viewport_scroll_layer->UserScrollableHorizontal());
8129 ASSERT_FALSE(visual_viewport_scroll_layer->UserScrollableVertical()); 8119 ASSERT_FALSE(visual_viewport_scroll_layer->UserScrollableVertical());
8130 8120
8131 // Verify that the viewports are scrollable upon exiting fullscreen. 8121 // Verify that the viewports are scrollable upon exiting fullscreen.
8132 EXPECT_EQ(div_fullscreen, 8122 web_view_impl->DidExitFullscreen();
8133 Fullscreen::CurrentFullScreenElementFrom(*document));
8134 EXPECT_EQ(div_fullscreen, Fullscreen::FullscreenElementFrom(*document)); 8123 EXPECT_EQ(div_fullscreen, Fullscreen::FullscreenElementFrom(*document));
8135 web_view_impl->DidExitFullscreen(); 8124 web_view_impl->BeginFrame(WTF::MonotonicallyIncreasingTime());
8136 EXPECT_EQ(nullptr, Fullscreen::CurrentFullScreenElementFrom(*document));
8137 EXPECT_EQ(nullptr, Fullscreen::FullscreenElementFrom(*document)); 8125 EXPECT_EQ(nullptr, Fullscreen::FullscreenElementFrom(*document));
8138 web_view_impl->UpdateAllLifecyclePhases(); 8126 web_view_impl->UpdateAllLifecyclePhases();
8139 EXPECT_EQ(nullptr, Fullscreen::CurrentFullScreenElementFrom(*document));
8140 EXPECT_EQ(nullptr, Fullscreen::FullscreenElementFrom(*document));
8141 ASSERT_TRUE(layout_viewport_scroll_layer->UserScrollableHorizontal()); 8127 ASSERT_TRUE(layout_viewport_scroll_layer->UserScrollableHorizontal());
8142 ASSERT_TRUE(layout_viewport_scroll_layer->UserScrollableVertical()); 8128 ASSERT_TRUE(layout_viewport_scroll_layer->UserScrollableVertical());
8143 ASSERT_TRUE(visual_viewport_scroll_layer->UserScrollableHorizontal()); 8129 ASSERT_TRUE(visual_viewport_scroll_layer->UserScrollableHorizontal());
8144 ASSERT_TRUE(visual_viewport_scroll_layer->UserScrollableVertical()); 8130 ASSERT_TRUE(visual_viewport_scroll_layer->UserScrollableVertical());
8145 } 8131 }
8146 8132
8147 TEST_P(ParameterizedWebFrameTest, FullscreenMainFrame) { 8133 TEST_P(ParameterizedWebFrameTest, FullscreenMainFrame) {
8148 FakeCompositingWebViewClient client; 8134 FakeCompositingWebViewClient client;
8149 RegisterMockedHttpURLLoad("fullscreen_div.html"); 8135 RegisterMockedHttpURLLoad("fullscreen_div.html");
8150 FrameTestHelpers::WebViewHelper web_view_helper; 8136 FrameTestHelpers::WebViewHelper web_view_helper;
(...skipping 12 matching lines...) Expand all
8163 ->LayerForScrolling() 8149 ->LayerForScrolling()
8164 ->PlatformLayer(); 8150 ->PlatformLayer();
8165 ASSERT_TRUE(web_scroll_layer->Scrollable()); 8151 ASSERT_TRUE(web_scroll_layer->Scrollable());
8166 ASSERT_TRUE(web_scroll_layer->UserScrollableHorizontal()); 8152 ASSERT_TRUE(web_scroll_layer->UserScrollableHorizontal());
8167 ASSERT_TRUE(web_scroll_layer->UserScrollableVertical()); 8153 ASSERT_TRUE(web_scroll_layer->UserScrollableVertical());
8168 8154
8169 Document* document = 8155 Document* document =
8170 web_view_impl->MainFrameImpl()->GetFrame()->GetDocument(); 8156 web_view_impl->MainFrameImpl()->GetFrame()->GetDocument();
8171 UserGestureIndicator gesture(UserGestureToken::Create(document)); 8157 UserGestureIndicator gesture(UserGestureToken::Create(document));
8172 Fullscreen::RequestFullscreen(*document->documentElement()); 8158 Fullscreen::RequestFullscreen(*document->documentElement());
8173 EXPECT_EQ(nullptr, Fullscreen::CurrentFullScreenElementFrom(*document)); 8159 web_view_impl->DidEnterFullscreen();
8160 EXPECT_EQ(nullptr, Fullscreen::FullscreenElementFrom(*document));
8161 web_view_impl->BeginFrame(WTF::MonotonicallyIncreasingTime());
8174 EXPECT_EQ(document->documentElement(), 8162 EXPECT_EQ(document->documentElement(),
8175 Fullscreen::FullscreenElementFrom(*document)); 8163 Fullscreen::FullscreenElementFrom(*document));
8176 web_view_impl->DidEnterFullscreen();
8177 EXPECT_EQ(document->documentElement(),
8178 Fullscreen::CurrentFullScreenElementFrom(*document));
8179 EXPECT_EQ(document->documentElement(),
8180 Fullscreen::FullscreenElementFrom(*document));
8181
8182 web_view_impl->UpdateAllLifecyclePhases(); 8164 web_view_impl->UpdateAllLifecyclePhases();
8183 EXPECT_EQ(document->documentElement(),
8184 Fullscreen::CurrentFullScreenElementFrom(*document));
8185 EXPECT_EQ(document->documentElement(),
8186 Fullscreen::FullscreenElementFrom(*document));
8187 8165
8188 // Verify that the main frame is still scrollable. 8166 // Verify that the main frame is still scrollable.
8189 web_scroll_layer = web_view_impl->MainFrameImpl() 8167 web_scroll_layer = web_view_impl->MainFrameImpl()
8190 ->GetFrame() 8168 ->GetFrame()
8191 ->View() 8169 ->View()
8192 ->LayoutViewportScrollableArea() 8170 ->LayoutViewportScrollableArea()
8193 ->LayerForScrolling() 8171 ->LayerForScrolling()
8194 ->PlatformLayer(); 8172 ->PlatformLayer();
8195 ASSERT_TRUE(web_scroll_layer->Scrollable()); 8173 ASSERT_TRUE(web_scroll_layer->Scrollable());
8196 ASSERT_TRUE(web_scroll_layer->UserScrollableHorizontal()); 8174 ASSERT_TRUE(web_scroll_layer->UserScrollableHorizontal());
(...skipping 22 matching lines...) Expand all
8219 web_view_impl->UpdateAllLifecyclePhases(); 8197 web_view_impl->UpdateAllLifecyclePhases();
8220 8198
8221 Document* document = 8199 Document* document =
8222 ToWebLocalFrameBase(web_view_helper.WebView()->MainFrame()->FirstChild()) 8200 ToWebLocalFrameBase(web_view_helper.WebView()->MainFrame()->FirstChild())
8223 ->GetFrame() 8201 ->GetFrame()
8224 ->GetDocument(); 8202 ->GetDocument();
8225 UserGestureIndicator gesture(UserGestureToken::Create(document)); 8203 UserGestureIndicator gesture(UserGestureToken::Create(document));
8226 Element* div_fullscreen = document->getElementById("div1"); 8204 Element* div_fullscreen = document->getElementById("div1");
8227 Fullscreen::RequestFullscreen(*div_fullscreen); 8205 Fullscreen::RequestFullscreen(*div_fullscreen);
8228 web_view_impl->DidEnterFullscreen(); 8206 web_view_impl->DidEnterFullscreen();
8207 web_view_impl->BeginFrame(WTF::MonotonicallyIncreasingTime());
8229 web_view_impl->UpdateAllLifecyclePhases(); 8208 web_view_impl->UpdateAllLifecyclePhases();
8230 8209
8231 // Verify that the element is sized to the viewport. 8210 // Verify that the element is sized to the viewport.
8232 LayoutFullScreen* fullscreen_layout_object = 8211 LayoutFullScreen* fullscreen_layout_object =
8233 Fullscreen::From(*document).FullScreenLayoutObject(); 8212 Fullscreen::From(*document).FullScreenLayoutObject();
8234 EXPECT_EQ(viewport_width, fullscreen_layout_object->LogicalWidth().ToInt()); 8213 EXPECT_EQ(viewport_width, fullscreen_layout_object->LogicalWidth().ToInt());
8235 EXPECT_EQ(viewport_height, fullscreen_layout_object->LogicalHeight().ToInt()); 8214 EXPECT_EQ(viewport_height, fullscreen_layout_object->LogicalHeight().ToInt());
8236 8215
8237 // Verify it's updated after a device rotation. 8216 // Verify it's updated after a device rotation.
8238 client.screen_info_.rect.width = viewport_height; 8217 client.screen_info_.rect.width = viewport_height;
(...skipping 21 matching lines...) Expand all
8260 HTMLIFrameElement* iframe = 8239 HTMLIFrameElement* iframe =
8261 toHTMLIFrameElement(top_doc->QuerySelector("iframe")); 8240 toHTMLIFrameElement(top_doc->QuerySelector("iframe"));
8262 Document* iframe_doc = iframe->contentDocument(); 8241 Document* iframe_doc = iframe->contentDocument();
8263 Element* iframe_body = iframe_doc->body(); 8242 Element* iframe_body = iframe_doc->body();
8264 8243
8265 { 8244 {
8266 UserGestureIndicator gesture(UserGestureToken::Create(top_doc)); 8245 UserGestureIndicator gesture(UserGestureToken::Create(top_doc));
8267 Fullscreen::RequestFullscreen(*top_body); 8246 Fullscreen::RequestFullscreen(*top_body);
8268 } 8247 }
8269 web_view_impl->DidEnterFullscreen(); 8248 web_view_impl->DidEnterFullscreen();
8249 EXPECT_EQ(nullptr, Fullscreen::FullscreenElementFrom(*top_doc));
8250 EXPECT_EQ(nullptr, Fullscreen::FullscreenElementFrom(*iframe_doc));
8251 web_view_impl->BeginFrame(WTF::MonotonicallyIncreasingTime());
8252 EXPECT_EQ(top_body, Fullscreen::FullscreenElementFrom(*top_doc));
8253 EXPECT_EQ(nullptr, Fullscreen::FullscreenElementFrom(*iframe_doc));
8270 web_view_impl->UpdateAllLifecyclePhases(); 8254 web_view_impl->UpdateAllLifecyclePhases();
8271 8255
8272 { 8256 {
8273 UserGestureIndicator gesture(UserGestureToken::Create(iframe_doc)); 8257 UserGestureIndicator gesture(UserGestureToken::Create(iframe_doc));
8274 Fullscreen::RequestFullscreen(*iframe_body); 8258 Fullscreen::RequestFullscreen(*iframe_body);
8275 } 8259 }
8276 web_view_impl->DidEnterFullscreen(); 8260 web_view_impl->DidEnterFullscreen();
8261 EXPECT_EQ(top_body, Fullscreen::FullscreenElementFrom(*top_doc));
8262 EXPECT_EQ(nullptr, Fullscreen::FullscreenElementFrom(*iframe_doc));
8263 web_view_impl->BeginFrame(WTF::MonotonicallyIncreasingTime());
8264 EXPECT_EQ(iframe, Fullscreen::FullscreenElementFrom(*top_doc));
8265 EXPECT_EQ(iframe_body, Fullscreen::FullscreenElementFrom(*iframe_doc));
8277 web_view_impl->UpdateAllLifecyclePhases(); 8266 web_view_impl->UpdateAllLifecyclePhases();
8278 8267
8279 // We are now in nested fullscreen, with both documents having a non-empty 8268 // We are now in nested fullscreen, with both documents having a non-empty
8280 // fullscreen element stack. 8269 // fullscreen element stack.
8281 EXPECT_EQ(top_body, Fullscreen::CurrentFullScreenElementFrom(*top_doc));
8282 EXPECT_EQ(iframe, Fullscreen::FullscreenElementFrom(*top_doc));
8283 EXPECT_EQ(iframe_body, Fullscreen::CurrentFullScreenElementFrom(*iframe_doc));
8284 EXPECT_EQ(iframe_body, Fullscreen::FullscreenElementFrom(*iframe_doc));
8285 8270
8286 web_view_impl->DidExitFullscreen(); 8271 web_view_impl->DidExitFullscreen();
8272 EXPECT_EQ(iframe, Fullscreen::FullscreenElementFrom(*top_doc));
8273 EXPECT_EQ(iframe_body, Fullscreen::FullscreenElementFrom(*iframe_doc));
8274 web_view_impl->BeginFrame(WTF::MonotonicallyIncreasingTime());
8275 EXPECT_EQ(nullptr, Fullscreen::FullscreenElementFrom(*top_doc));
8276 EXPECT_EQ(nullptr, Fullscreen::FullscreenElementFrom(*iframe_doc));
8287 web_view_impl->UpdateAllLifecyclePhases(); 8277 web_view_impl->UpdateAllLifecyclePhases();
8288 8278
8289 // We should now have fully exited fullscreen. 8279 // We have now fully exited fullscreen.
8290 EXPECT_EQ(nullptr, Fullscreen::CurrentFullScreenElementFrom(*top_doc));
8291 EXPECT_EQ(nullptr, Fullscreen::FullscreenElementFrom(*top_doc));
8292 EXPECT_EQ(nullptr, Fullscreen::CurrentFullScreenElementFrom(*iframe_doc));
8293 EXPECT_EQ(nullptr, Fullscreen::FullscreenElementFrom(*iframe_doc));
8294 } 8280 }
8295 8281
8296 TEST_P(ParameterizedWebFrameTest, FullscreenWithTinyViewport) { 8282 TEST_P(ParameterizedWebFrameTest, FullscreenWithTinyViewport) {
8297 FakeCompositingWebViewClient client; 8283 FakeCompositingWebViewClient client;
8298 RegisterMockedHttpURLLoad("viewport-tiny.html"); 8284 RegisterMockedHttpURLLoad("viewport-tiny.html");
8299 FrameTestHelpers::WebViewHelper web_view_helper; 8285 FrameTestHelpers::WebViewHelper web_view_helper;
8300 WebViewBase* web_view_impl = web_view_helper.InitializeAndLoad( 8286 WebViewBase* web_view_impl = web_view_helper.InitializeAndLoad(
8301 base_url_ + "viewport-tiny.html", true, nullptr, &client, nullptr, 8287 base_url_ + "viewport-tiny.html", true, nullptr, &client, nullptr,
8302 ConfigureAndroid); 8288 ConfigureAndroid);
8303 int viewport_width = 384; 8289 int viewport_width = 384;
(...skipping 11 matching lines...) Expand all
8315 EXPECT_EQ(533, layout_view_item.LogicalHeight().Floor()); 8301 EXPECT_EQ(533, layout_view_item.LogicalHeight().Floor());
8316 EXPECT_FLOAT_EQ(1.2, web_view_impl->PageScaleFactor()); 8302 EXPECT_FLOAT_EQ(1.2, web_view_impl->PageScaleFactor());
8317 EXPECT_FLOAT_EQ(1.2, web_view_impl->MinimumPageScaleFactor()); 8303 EXPECT_FLOAT_EQ(1.2, web_view_impl->MinimumPageScaleFactor());
8318 EXPECT_FLOAT_EQ(5.0, web_view_impl->MaximumPageScaleFactor()); 8304 EXPECT_FLOAT_EQ(5.0, web_view_impl->MaximumPageScaleFactor());
8319 8305
8320 Document* document = 8306 Document* document =
8321 web_view_impl->MainFrameImpl()->GetFrame()->GetDocument(); 8307 web_view_impl->MainFrameImpl()->GetFrame()->GetDocument();
8322 UserGestureIndicator gesture(UserGestureToken::Create(document)); 8308 UserGestureIndicator gesture(UserGestureToken::Create(document));
8323 Fullscreen::RequestFullscreen(*document->documentElement()); 8309 Fullscreen::RequestFullscreen(*document->documentElement());
8324 web_view_impl->DidEnterFullscreen(); 8310 web_view_impl->DidEnterFullscreen();
8311 web_view_impl->BeginFrame(WTF::MonotonicallyIncreasingTime());
8325 web_view_impl->UpdateAllLifecyclePhases(); 8312 web_view_impl->UpdateAllLifecyclePhases();
8326 EXPECT_EQ(384, layout_view_item.LogicalWidth().Floor()); 8313 EXPECT_EQ(384, layout_view_item.LogicalWidth().Floor());
8327 EXPECT_EQ(640, layout_view_item.LogicalHeight().Floor()); 8314 EXPECT_EQ(640, layout_view_item.LogicalHeight().Floor());
8328 EXPECT_FLOAT_EQ(1.0, web_view_impl->PageScaleFactor()); 8315 EXPECT_FLOAT_EQ(1.0, web_view_impl->PageScaleFactor());
8329 EXPECT_FLOAT_EQ(1.0, web_view_impl->MinimumPageScaleFactor()); 8316 EXPECT_FLOAT_EQ(1.0, web_view_impl->MinimumPageScaleFactor());
8330 EXPECT_FLOAT_EQ(1.0, web_view_impl->MaximumPageScaleFactor()); 8317 EXPECT_FLOAT_EQ(1.0, web_view_impl->MaximumPageScaleFactor());
8331 8318
8332 web_view_impl->DidExitFullscreen(); 8319 web_view_impl->DidExitFullscreen();
8320 web_view_impl->BeginFrame(WTF::MonotonicallyIncreasingTime());
8333 web_view_impl->UpdateAllLifecyclePhases(); 8321 web_view_impl->UpdateAllLifecyclePhases();
8334 EXPECT_EQ(320, layout_view_item.LogicalWidth().Floor()); 8322 EXPECT_EQ(320, layout_view_item.LogicalWidth().Floor());
8335 EXPECT_EQ(533, layout_view_item.LogicalHeight().Floor()); 8323 EXPECT_EQ(533, layout_view_item.LogicalHeight().Floor());
8336 EXPECT_FLOAT_EQ(1.2, web_view_impl->PageScaleFactor()); 8324 EXPECT_FLOAT_EQ(1.2, web_view_impl->PageScaleFactor());
8337 EXPECT_FLOAT_EQ(1.2, web_view_impl->MinimumPageScaleFactor()); 8325 EXPECT_FLOAT_EQ(1.2, web_view_impl->MinimumPageScaleFactor());
8338 EXPECT_FLOAT_EQ(5.0, web_view_impl->MaximumPageScaleFactor()); 8326 EXPECT_FLOAT_EQ(5.0, web_view_impl->MaximumPageScaleFactor());
8339 } 8327 }
8340 8328
8341 TEST_P(ParameterizedWebFrameTest, FullscreenResizeWithTinyViewport) { 8329 TEST_P(ParameterizedWebFrameTest, FullscreenResizeWithTinyViewport) {
8342 FakeCompositingWebViewClient client; 8330 FakeCompositingWebViewClient client;
(...skipping 11 matching lines...) Expand all
8354 8342
8355 LayoutViewItem layout_view_item = web_view_helper.WebView() 8343 LayoutViewItem layout_view_item = web_view_helper.WebView()
8356 ->MainFrameImpl() 8344 ->MainFrameImpl()
8357 ->GetFrameView() 8345 ->GetFrameView()
8358 ->GetLayoutViewItem(); 8346 ->GetLayoutViewItem();
8359 Document* document = 8347 Document* document =
8360 web_view_impl->MainFrameImpl()->GetFrame()->GetDocument(); 8348 web_view_impl->MainFrameImpl()->GetFrame()->GetDocument();
8361 UserGestureIndicator gesture(UserGestureToken::Create(document)); 8349 UserGestureIndicator gesture(UserGestureToken::Create(document));
8362 Fullscreen::RequestFullscreen(*document->documentElement()); 8350 Fullscreen::RequestFullscreen(*document->documentElement());
8363 web_view_impl->DidEnterFullscreen(); 8351 web_view_impl->DidEnterFullscreen();
8352 web_view_impl->BeginFrame(WTF::MonotonicallyIncreasingTime());
8364 web_view_impl->UpdateAllLifecyclePhases(); 8353 web_view_impl->UpdateAllLifecyclePhases();
8365 EXPECT_EQ(384, layout_view_item.LogicalWidth().Floor()); 8354 EXPECT_EQ(384, layout_view_item.LogicalWidth().Floor());
8366 EXPECT_EQ(640, layout_view_item.LogicalHeight().Floor()); 8355 EXPECT_EQ(640, layout_view_item.LogicalHeight().Floor());
8367 EXPECT_FLOAT_EQ(1.0, web_view_impl->PageScaleFactor()); 8356 EXPECT_FLOAT_EQ(1.0, web_view_impl->PageScaleFactor());
8368 EXPECT_FLOAT_EQ(1.0, web_view_impl->MinimumPageScaleFactor()); 8357 EXPECT_FLOAT_EQ(1.0, web_view_impl->MinimumPageScaleFactor());
8369 EXPECT_FLOAT_EQ(1.0, web_view_impl->MaximumPageScaleFactor()); 8358 EXPECT_FLOAT_EQ(1.0, web_view_impl->MaximumPageScaleFactor());
8370 8359
8371 viewport_width = 640; 8360 viewport_width = 640;
8372 viewport_height = 384; 8361 viewport_height = 384;
8373 client.screen_info_.rect.width = viewport_width; 8362 client.screen_info_.rect.width = viewport_width;
8374 client.screen_info_.rect.height = viewport_height; 8363 client.screen_info_.rect.height = viewport_height;
8375 web_view_helper.Resize(WebSize(viewport_width, viewport_height)); 8364 web_view_helper.Resize(WebSize(viewport_width, viewport_height));
8376 web_view_impl->UpdateAllLifecyclePhases(); 8365 web_view_impl->UpdateAllLifecyclePhases();
8377 EXPECT_EQ(640, layout_view_item.LogicalWidth().Floor()); 8366 EXPECT_EQ(640, layout_view_item.LogicalWidth().Floor());
8378 EXPECT_EQ(384, layout_view_item.LogicalHeight().Floor()); 8367 EXPECT_EQ(384, layout_view_item.LogicalHeight().Floor());
8379 EXPECT_FLOAT_EQ(1.0, web_view_impl->PageScaleFactor()); 8368 EXPECT_FLOAT_EQ(1.0, web_view_impl->PageScaleFactor());
8380 EXPECT_FLOAT_EQ(1.0, web_view_impl->MinimumPageScaleFactor()); 8369 EXPECT_FLOAT_EQ(1.0, web_view_impl->MinimumPageScaleFactor());
8381 EXPECT_FLOAT_EQ(1.0, web_view_impl->MaximumPageScaleFactor()); 8370 EXPECT_FLOAT_EQ(1.0, web_view_impl->MaximumPageScaleFactor());
8382 8371
8383 web_view_impl->DidExitFullscreen(); 8372 web_view_impl->DidExitFullscreen();
8373 web_view_impl->BeginFrame(WTF::MonotonicallyIncreasingTime());
8384 web_view_impl->UpdateAllLifecyclePhases(); 8374 web_view_impl->UpdateAllLifecyclePhases();
8385 EXPECT_EQ(320, layout_view_item.LogicalWidth().Floor()); 8375 EXPECT_EQ(320, layout_view_item.LogicalWidth().Floor());
8386 EXPECT_EQ(192, layout_view_item.LogicalHeight().Floor()); 8376 EXPECT_EQ(192, layout_view_item.LogicalHeight().Floor());
8387 EXPECT_FLOAT_EQ(2, web_view_impl->PageScaleFactor()); 8377 EXPECT_FLOAT_EQ(2, web_view_impl->PageScaleFactor());
8388 EXPECT_FLOAT_EQ(2, web_view_impl->MinimumPageScaleFactor()); 8378 EXPECT_FLOAT_EQ(2, web_view_impl->MinimumPageScaleFactor());
8389 EXPECT_FLOAT_EQ(5.0, web_view_impl->MaximumPageScaleFactor()); 8379 EXPECT_FLOAT_EQ(5.0, web_view_impl->MaximumPageScaleFactor());
8390 } 8380 }
8391 8381
8392 TEST_P(ParameterizedWebFrameTest, FullscreenRestoreScaleFactorUponExiting) { 8382 TEST_P(ParameterizedWebFrameTest, FullscreenRestoreScaleFactorUponExiting) {
8393 // The purpose of this test is to more precisely simulate the sequence of 8383 // The purpose of this test is to more precisely simulate the sequence of
(...skipping 28 matching lines...) Expand all
8422 EXPECT_FLOAT_EQ(5.0, web_view_impl->MaximumPageScaleFactor()); 8412 EXPECT_FLOAT_EQ(5.0, web_view_impl->MaximumPageScaleFactor());
8423 8413
8424 { 8414 {
8425 Document* document = 8415 Document* document =
8426 web_view_impl->MainFrameImpl()->GetFrame()->GetDocument(); 8416 web_view_impl->MainFrameImpl()->GetFrame()->GetDocument();
8427 UserGestureIndicator gesture(UserGestureToken::Create(document)); 8417 UserGestureIndicator gesture(UserGestureToken::Create(document));
8428 Fullscreen::RequestFullscreen(*document->body()); 8418 Fullscreen::RequestFullscreen(*document->body());
8429 } 8419 }
8430 8420
8431 web_view_impl->DidEnterFullscreen(); 8421 web_view_impl->DidEnterFullscreen();
8422 web_view_impl->BeginFrame(WTF::MonotonicallyIncreasingTime());
8432 web_view_impl->UpdateAllLifecyclePhases(); 8423 web_view_impl->UpdateAllLifecyclePhases();
8433 client.screen_info_.rect.width = screen_size_minus_status_bars.width; 8424 client.screen_info_.rect.width = screen_size_minus_status_bars.width;
8434 client.screen_info_.rect.height = screen_size_minus_status_bars.height; 8425 client.screen_info_.rect.height = screen_size_minus_status_bars.height;
8435 web_view_helper.Resize(screen_size_minus_status_bars); 8426 web_view_helper.Resize(screen_size_minus_status_bars);
8436 client.screen_info_.rect.width = screen_size.width; 8427 client.screen_info_.rect.width = screen_size.width;
8437 client.screen_info_.rect.height = screen_size.height; 8428 client.screen_info_.rect.height = screen_size.height;
8438 web_view_helper.Resize(screen_size); 8429 web_view_helper.Resize(screen_size);
8439 EXPECT_EQ(screen_size.width, layout_view_item.LogicalWidth().Floor()); 8430 EXPECT_EQ(screen_size.width, layout_view_item.LogicalWidth().Floor());
8440 EXPECT_EQ(screen_size.height, layout_view_item.LogicalHeight().Floor()); 8431 EXPECT_EQ(screen_size.height, layout_view_item.LogicalHeight().Floor());
8441 EXPECT_FLOAT_EQ(1.0, web_view_impl->PageScaleFactor()); 8432 EXPECT_FLOAT_EQ(1.0, web_view_impl->PageScaleFactor());
8442 EXPECT_FLOAT_EQ(1.0, web_view_impl->MinimumPageScaleFactor()); 8433 EXPECT_FLOAT_EQ(1.0, web_view_impl->MinimumPageScaleFactor());
8443 EXPECT_FLOAT_EQ(1.0, web_view_impl->MaximumPageScaleFactor()); 8434 EXPECT_FLOAT_EQ(1.0, web_view_impl->MaximumPageScaleFactor());
8444 8435
8445 web_view_impl->DidExitFullscreen(); 8436 web_view_impl->DidExitFullscreen();
8437 web_view_impl->BeginFrame(WTF::MonotonicallyIncreasingTime());
8446 web_view_impl->UpdateAllLifecyclePhases(); 8438 web_view_impl->UpdateAllLifecyclePhases();
8447 client.screen_info_.rect.width = screen_size_minus_status_bars.width; 8439 client.screen_info_.rect.width = screen_size_minus_status_bars.width;
8448 client.screen_info_.rect.height = screen_size_minus_status_bars.height; 8440 client.screen_info_.rect.height = screen_size_minus_status_bars.height;
8449 web_view_helper.Resize(screen_size_minus_status_bars); 8441 web_view_helper.Resize(screen_size_minus_status_bars);
8450 client.screen_info_.rect.width = 8442 client.screen_info_.rect.width =
8451 screen_size_minus_status_bars_minus_url_bar.width; 8443 screen_size_minus_status_bars_minus_url_bar.width;
8452 client.screen_info_.rect.height = 8444 client.screen_info_.rect.height =
8453 screen_size_minus_status_bars_minus_url_bar.height; 8445 screen_size_minus_status_bars_minus_url_bar.height;
8454 web_view_helper.Resize(screen_size_minus_status_bars_minus_url_bar); 8446 web_view_helper.Resize(screen_size_minus_status_bars_minus_url_bar);
8455 EXPECT_EQ(screen_size_minus_status_bars_minus_url_bar.width, 8447 EXPECT_EQ(screen_size_minus_status_bars_minus_url_bar.width,
(...skipping 28 matching lines...) Expand all
8484 EXPECT_FLOAT_EQ(0.3125, web_view_impl->PageScaleFactor()); 8476 EXPECT_FLOAT_EQ(0.3125, web_view_impl->PageScaleFactor());
8485 EXPECT_FLOAT_EQ(0.3125, web_view_impl->MinimumPageScaleFactor()); 8477 EXPECT_FLOAT_EQ(0.3125, web_view_impl->MinimumPageScaleFactor());
8486 EXPECT_FLOAT_EQ(5.0, web_view_impl->MaximumPageScaleFactor()); 8478 EXPECT_FLOAT_EQ(5.0, web_view_impl->MaximumPageScaleFactor());
8487 8479
8488 Document* document = 8480 Document* document =
8489 web_view_impl->MainFrameImpl()->GetFrame()->GetDocument(); 8481 web_view_impl->MainFrameImpl()->GetFrame()->GetDocument();
8490 UserGestureIndicator gesture( 8482 UserGestureIndicator gesture(
8491 UserGestureToken::Create(document, UserGestureToken::kNewGesture)); 8483 UserGestureToken::Create(document, UserGestureToken::kNewGesture));
8492 Fullscreen::RequestFullscreen(*document->documentElement()); 8484 Fullscreen::RequestFullscreen(*document->documentElement());
8493 web_view_impl->DidEnterFullscreen(); 8485 web_view_impl->DidEnterFullscreen();
8486 web_view_impl->BeginFrame(WTF::MonotonicallyIncreasingTime());
8494 web_view_impl->UpdateAllLifecyclePhases(); 8487 web_view_impl->UpdateAllLifecyclePhases();
8495 8488
8496 // Entering fullscreen causes layout size and page scale limits to be 8489 // Entering fullscreen causes layout size and page scale limits to be
8497 // overridden. 8490 // overridden.
8498 EXPECT_EQ(100, layout_view_item.LogicalWidth().Floor()); 8491 EXPECT_EQ(100, layout_view_item.LogicalWidth().Floor());
8499 EXPECT_EQ(200, layout_view_item.LogicalHeight().Floor()); 8492 EXPECT_EQ(200, layout_view_item.LogicalHeight().Floor());
8500 EXPECT_FLOAT_EQ(1.0, web_view_impl->PageScaleFactor()); 8493 EXPECT_FLOAT_EQ(1.0, web_view_impl->PageScaleFactor());
8501 EXPECT_FLOAT_EQ(1.0, web_view_impl->MinimumPageScaleFactor()); 8494 EXPECT_FLOAT_EQ(1.0, web_view_impl->MinimumPageScaleFactor());
8502 EXPECT_FLOAT_EQ(1.0, web_view_impl->MaximumPageScaleFactor()); 8495 EXPECT_FLOAT_EQ(1.0, web_view_impl->MaximumPageScaleFactor());
8503 8496
8504 const char kSource[] = "<meta name=\"viewport\" content=\"width=200\">"; 8497 const char kSource[] = "<meta name=\"viewport\" content=\"width=200\">";
8505 8498
8506 // Load a new page before exiting fullscreen. 8499 // Load a new page before exiting fullscreen.
8507 KURL test_url = ToKURL("about:blank"); 8500 KURL test_url = ToKURL("about:blank");
8508 WebFrame* frame = web_view_helper.WebView()->MainFrame(); 8501 WebFrame* frame = web_view_helper.WebView()->MainFrame();
8509 FrameTestHelpers::LoadHTMLString(frame, kSource, test_url); 8502 FrameTestHelpers::LoadHTMLString(frame, kSource, test_url);
8510 web_view_impl->DidExitFullscreen(); 8503 web_view_impl->DidExitFullscreen();
8504 web_view_impl->BeginFrame(WTF::MonotonicallyIncreasingTime());
8511 web_view_impl->UpdateAllLifecyclePhases(); 8505 web_view_impl->UpdateAllLifecyclePhases();
8512 8506
8513 // Make sure the new page's layout size and scale factor limits aren't 8507 // Make sure the new page's layout size and scale factor limits aren't
8514 // overridden. 8508 // overridden.
8515 layout_view_item = 8509 layout_view_item =
8516 web_view_impl->MainFrameImpl()->GetFrameView()->GetLayoutViewItem(); 8510 web_view_impl->MainFrameImpl()->GetFrameView()->GetLayoutViewItem();
8517 EXPECT_EQ(200, layout_view_item.LogicalWidth().Floor()); 8511 EXPECT_EQ(200, layout_view_item.LogicalWidth().Floor());
8518 EXPECT_EQ(400, layout_view_item.LogicalHeight().Floor()); 8512 EXPECT_EQ(400, layout_view_item.LogicalHeight().Floor());
8519 EXPECT_FLOAT_EQ(0.5, web_view_impl->MinimumPageScaleFactor()); 8513 EXPECT_FLOAT_EQ(0.5, web_view_impl->MinimumPageScaleFactor());
8520 EXPECT_FLOAT_EQ(5.0, web_view_impl->MaximumPageScaleFactor()); 8514 EXPECT_FLOAT_EQ(5.0, web_view_impl->MaximumPageScaleFactor());
(...skipping 29 matching lines...) Expand all
8550 8544
8551 const TestFullscreenWebLayerTreeView& layer_tree_view = 8545 const TestFullscreenWebLayerTreeView& layer_tree_view =
8552 web_view_client.test_fullscreen_layer_tree_view; 8546 web_view_client.test_fullscreen_layer_tree_view;
8553 8547
8554 Document* document = 8548 Document* document =
8555 web_view_impl->MainFrameImpl()->GetFrame()->GetDocument(); 8549 web_view_impl->MainFrameImpl()->GetFrame()->GetDocument();
8556 UserGestureIndicator gesture(UserGestureToken::Create(document)); 8550 UserGestureIndicator gesture(UserGestureToken::Create(document));
8557 HTMLVideoElement* video = 8551 HTMLVideoElement* video =
8558 toHTMLVideoElement(document->getElementById("video")); 8552 toHTMLVideoElement(document->getElementById("video"));
8559 EXPECT_TRUE(video->UsesOverlayFullscreenVideo()); 8553 EXPECT_TRUE(video->UsesOverlayFullscreenVideo());
8560 EXPECT_FALSE(video->IsFullscreen());
8561 EXPECT_FALSE(layer_tree_view.has_transparent_background);
8562 8554
8563 video->webkitEnterFullscreen(); 8555 video->webkitEnterFullscreen();
8564 web_view_impl->DidEnterFullscreen(); 8556 web_view_impl->DidEnterFullscreen();
8565 web_view_impl->UpdateAllLifecyclePhases(); 8557 EXPECT_FALSE(video->IsFullscreen());
8558 EXPECT_FALSE(layer_tree_view.has_transparent_background);
8559 web_view_impl->BeginFrame(WTF::MonotonicallyIncreasingTime());
8566 EXPECT_TRUE(video->IsFullscreen()); 8560 EXPECT_TRUE(video->IsFullscreen());
8567 EXPECT_TRUE(layer_tree_view.has_transparent_background); 8561 EXPECT_TRUE(layer_tree_view.has_transparent_background);
8562 web_view_impl->UpdateAllLifecyclePhases();
8568 8563
8569 web_view_impl->DidExitFullscreen(); 8564 web_view_impl->DidExitFullscreen();
8570 web_view_impl->UpdateAllLifecyclePhases(); 8565 EXPECT_TRUE(video->IsFullscreen());
8566 EXPECT_TRUE(layer_tree_view.has_transparent_background);
8567 web_view_impl->BeginFrame(WTF::MonotonicallyIncreasingTime());
8571 EXPECT_FALSE(video->IsFullscreen()); 8568 EXPECT_FALSE(video->IsFullscreen());
8572 EXPECT_FALSE(layer_tree_view.has_transparent_background); 8569 EXPECT_FALSE(layer_tree_view.has_transparent_background);
8570 web_view_impl->UpdateAllLifecyclePhases();
8573 } 8571 }
8574 8572
8575 TEST_P(ParameterizedWebFrameTest, LayoutBlockPercentHeightDescendants) { 8573 TEST_P(ParameterizedWebFrameTest, LayoutBlockPercentHeightDescendants) {
8576 RegisterMockedHttpURLLoad("percent-height-descendants.html"); 8574 RegisterMockedHttpURLLoad("percent-height-descendants.html");
8577 FrameTestHelpers::WebViewHelper web_view_helper; 8575 FrameTestHelpers::WebViewHelper web_view_helper;
8578 web_view_helper.InitializeAndLoad(base_url_ + 8576 web_view_helper.InitializeAndLoad(base_url_ +
8579 "percent-height-descendants.html"); 8577 "percent-height-descendants.html");
8580 8578
8581 WebViewBase* web_view = web_view_helper.WebView(); 8579 WebViewBase* web_view = web_view_helper.WebView();
8582 web_view_helper.Resize(WebSize(800, 800)); 8580 web_view_helper.Resize(WebSize(800, 800));
(...skipping 3603 matching lines...) Expand 10 before | Expand all | Expand 10 after
12186 if (obj->IsText()) { 12184 if (obj->IsText()) {
12187 LayoutText* layout_text = ToLayoutText(obj); 12185 LayoutText* layout_text = ToLayoutText(obj);
12188 text = layout_text->GetText(); 12186 text = layout_text->GetText();
12189 break; 12187 break;
12190 } 12188 }
12191 } 12189 }
12192 EXPECT_EQ("foo alt", text.Utf8()); 12190 EXPECT_EQ("foo alt", text.Utf8());
12193 } 12191 }
12194 12192
12195 } // namespace blink 12193 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/web/WebViewImpl.h ('k') | third_party/WebKit/Source/web/tests/WebViewTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698