| Index: content/renderer/render_frame_impl_browsertest.cc
|
| diff --git a/content/renderer/render_frame_impl_browsertest.cc b/content/renderer/render_frame_impl_browsertest.cc
|
| index 0975713148a8b968e74dd9ab3d53767a8905a3ee..f0ad02e4fbeeace29aa963581f10a839b68a5aaf 100644
|
| --- a/content/renderer/render_frame_impl_browsertest.cc
|
| +++ b/content/renderer/render_frame_impl_browsertest.cc
|
| @@ -7,6 +7,7 @@
|
| #include "base/command_line.h"
|
| #include "base/debug/leak_annotations.h"
|
| #include "build/build_config.h"
|
| +#include "content/child/web_url_loader_impl.h"
|
| #include "content/common/frame_messages.h"
|
| #include "content/common/frame_owner_properties.h"
|
| #include "content/common/view_messages.h"
|
| @@ -24,6 +25,7 @@
|
| #include "third_party/WebKit/public/platform/WebURLRequest.h"
|
| #include "third_party/WebKit/public/web/WebHistoryItem.h"
|
| #include "third_party/WebKit/public/web/WebLocalFrame.h"
|
| +#include "third_party/WebKit/public/web/WebView.h"
|
|
|
| using blink::WebString;
|
|
|
| @@ -343,4 +345,32 @@ TEST_F(RenderFrameImplTest, SaveImageFromDataURL) {
|
| EXPECT_FALSE(msg4);
|
| }
|
|
|
| +TEST_F(RenderFrameImplTest, ZoomLimit) {
|
| + const double kMinZoomLevel = ZoomFactorToZoomLevel(kMinimumZoomFactor);
|
| + const double kMaxZoomLevel = ZoomFactorToZoomLevel(kMaximumZoomFactor);
|
| +
|
| + // Verifies navigation to a URL with preset zoom level indeed sets the level.
|
| + // Regression test for http://crbug.com/139559, where the level was not
|
| + // properly set when it is out of the default zoom limits of WebView.
|
| + CommonNavigationParams common_params;
|
| + common_params.url = GURL("data:text/html,min_zoomlimit_test");
|
| + GetMainRenderFrame()->SetHostZoomLevel(common_params.url, kMinZoomLevel);
|
| + GetMainRenderFrame()->NavigateInternal(
|
| + common_params, StartNavigationParams(), RequestNavigationParams(),
|
| + std::unique_ptr<StreamOverrideParameters>());
|
| + ProcessPendingMessages();
|
| + EXPECT_DOUBLE_EQ(kMinZoomLevel, view_->GetWebView()->zoomLevel());
|
| +
|
| + // It should work even when the zoom limit is temporarily changed in the page.
|
| + view_->GetWebView()->zoomLimitsChanged(ZoomFactorToZoomLevel(1.0),
|
| + ZoomFactorToZoomLevel(1.0));
|
| + common_params.url = GURL("data:text/html,max_zoomlimit_test");
|
| + GetMainRenderFrame()->SetHostZoomLevel(common_params.url, kMaxZoomLevel);
|
| + GetMainRenderFrame()->NavigateInternal(
|
| + common_params, StartNavigationParams(), RequestNavigationParams(),
|
| + std::unique_ptr<StreamOverrideParameters>());
|
| + ProcessPendingMessages();
|
| + EXPECT_DOUBLE_EQ(kMaxZoomLevel, view_->GetWebView()->zoomLevel());
|
| +}
|
| +
|
| } // namespace
|
|
|