Commit 70cbf61a authored by WangHui's avatar WangHui Committed by Chromium LUCI CQ

Use is_mobile_optimized from RenderFrameMetadata.

Use is_mobile_optimized from RenderFrameMetadata.

Bug:1090459

Change-Id: I8ad737a6aa33abfa9c67bb5f7371421240b10d8b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2606875Reviewed-by: default avatarBo <boliu@chromium.org>
Commit-Queue: HuiWang <wanghui210@huawei.com>
Cr-Commit-Position: refs/heads/master@{#840464}
parent 971c1735
......@@ -1286,8 +1286,6 @@ source_set("browser") {
"renderer_host/file_utilities_host_impl.h",
"renderer_host/form_submission_throttle.cc",
"renderer_host/form_submission_throttle.h",
"renderer_host/frame_metadata_util.cc",
"renderer_host/frame_metadata_util.h",
"renderer_host/frame_navigation_entry.cc",
"renderer_host/frame_navigation_entry.h",
"renderer_host/frame_token_message_queue.cc",
......
// Copyright (c) 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "content/browser/renderer_host/frame_metadata_util.h"
#include "ui/gfx/geometry/size_f.h"
namespace {
// Used to accomodate finite precision when comparing scaled viewport and
// content widths. While this value may seem large, width=device-width on an N7
// V1 saw errors of ~0.065 between computed window and content widths.
const float kMobileViewportWidthEpsilon = 0.15f;
bool HasFixedPageScale(float min_page_scale_factor,
float max_page_scale_factor) {
return min_page_scale_factor == max_page_scale_factor;
}
bool HasMobileViewport(float page_scale_factor,
const gfx::SizeF& scrollable_viewport_size,
const gfx::SizeF& root_layer_size) {
float window_width_dip = page_scale_factor * scrollable_viewport_size.width();
float content_width_css = root_layer_size.width();
return content_width_css <= window_width_dip + kMobileViewportWidthEpsilon;
}
} // namespace
namespace content {
bool IsMobileOptimizedFrame(float page_scale_factor,
float min_page_scale_factor,
float max_page_scale_factor,
const gfx::SizeF& scrollable_viewport_size,
const gfx::SizeF& root_layer_size) {
bool has_mobile_viewport = HasMobileViewport(
page_scale_factor, scrollable_viewport_size, root_layer_size);
bool has_fixed_page_scale =
HasFixedPageScale(min_page_scale_factor, max_page_scale_factor);
return has_fixed_page_scale || has_mobile_viewport;
}
} // namespace content
// Copyright (c) 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CONTENT_BROWSER_RENDERER_HOST_FRAME_METADATA_UTIL_H_
#define CONTENT_BROWSER_RENDERER_HOST_FRAME_METADATA_UTIL_H_
#include "content/common/content_export.h"
namespace gfx {
class SizeF;
}
namespace content {
// Decides whether frame metadata corresponds to mobile-optimized content.
// By default returns |false|, except for the following cases:
// - page that has a width=device-width or narrower viewport
// (indicating that this is a mobile-optimized or responsive web design);
// - page that prevents zooming in or out.
CONTENT_EXPORT bool IsMobileOptimizedFrame(
float page_scale_factor,
float min_page_scale_factor,
float max_page_scale_factor,
const gfx::SizeF& scrollable_viewport_size,
const gfx::SizeF& root_layer_size);
} // namespace content
#endif // CONTENT_BROWSER_RENDERER_HOST_FRAME_METADATA_UTIL_H_
......@@ -52,7 +52,6 @@
#include "content/browser/renderer_host/compositor_impl_android.h"
#include "content/browser/renderer_host/delegated_frame_host_client_android.h"
#include "content/browser/renderer_host/display_util.h"
#include "content/browser/renderer_host/frame_metadata_util.h"
#include "content/browser/renderer_host/input/input_router.h"
#include "content/browser/renderer_host/input/synthetic_gesture_target_android.h"
#include "content/browser/renderer_host/input/touch_selection_controller_client_manager_android.h"
......@@ -423,12 +422,8 @@ void RenderWidgetHostViewAndroid::OnRenderFrameMetadataChangedBeforeActivation(
is_transparent = false;
}
bool is_mobile_optimized = IsMobileOptimizedFrame(
metadata.page_scale_factor, metadata.min_page_scale_factor,
metadata.max_page_scale_factor, metadata.scrollable_viewport_size,
metadata.root_layer_size);
gesture_provider_.SetDoubleTapSupportForPageEnabled(!is_mobile_optimized);
gesture_provider_.SetDoubleTapSupportForPageEnabled(
!metadata.is_mobile_optimized);
float dip_scale = view_.GetDipScale();
gfx::SizeF root_layer_size_dip = metadata.root_layer_size;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment