Commit 9fd6b9a7 authored by Thiemo Nagel's avatar Thiemo Nagel Committed by Commit Bot

Revert "back gesture: Disable back gesture for {touch-action:none} web pages/apps."

This reverts commit 926cd1f5.

Reason for revert: Flakiness in BackGestureBrowserTest.PreventDefault

Three failures observed on linux-chromeos-rel: https://ci.chromium.org/p/chromium/builders/ci/linux-chromeos-rel

https://chromium-swarm.appspot.com/task?id=4c8d35366f7d4710#BackGestureBrowserTest.PreventDefault,BackGestureBrowserTest.TouchActions,DemoSetupArcSupportedTest.ShowOfflineSetupOptionOnNetworkList,NetworkQualityTrackerBrowserTest.SimulateNetworkServiceCrash,SwitchAccessPredicateTest.LeafPredicate,TopControlsSlideControllerTest.DisplayRotation

../../chrome/browser/ui/ash/back_gesture_browsertest.cc:210: Failure
Value of: recorder.HasReceivedEvent(ui::EventType::ET_KEY_PRESSED)
  Actual: true
Expected: false
Stack trace:
#0 0x5585e4320fef BackGestureBrowserTest_PreventDefault_Test::RunTestOnMainThread()
#1 0x5585e7da383d content::BrowserTestBase::ProxyRunTestOnMainThreadLoop()
#2 0x5585e7900459 ChromeBrowserMainParts::PreMainMessageLoopRunImpl()
#3 0x5585e78ff599 ChromeBrowserMainParts::PreMainMessageLoopRun()
#4 0x5585e4a12dd9 chromeos::ChromeBrowserMainPartsChromeos::PreMainMessageLoopRun()
#5 0x5585e5c7fd84 content::BrowserMainLoop::PreMainMessageLoopRun()
#6 0x5585e6079033 content::StartupTaskRunner::RunAllTasksNow()
#7 0x5585e5c7ed8a content::BrowserMainLoop::CreateStartupTasks()
#8 0x5585e5c81611 content::BrowserMainRunnerImpl::Initialize()
#9 0x5585e5c7d3ad content::BrowserMain()
#10 0x5585e7384f2d content::ContentMainRunnerImpl::RunServiceManager()
#11 0x5585e73849b7 content::ContentMainRunnerImpl::Run()
#12 0x5585e99d13d5 service_manager::Main()
#13 0x5585e67835d4 content::ContentMain()
#14 0x5585e7da33ba content::BrowserTestBase::SetUp()
#15 0x5585e77dca3a InProcessBrowserTest::SetUp()

Original change's description:
> back gesture: Disable back gesture for {touch-action:none} web pages/apps.
> 
> Bug: 1063144
> Change-Id: I85379cc2f4aded28ac9eefb09e2086d446f42168
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2166360
> Commit-Queue: Xiaoqian Dai <xdai@chromium.org>
> Reviewed-by: Scott Violet <sky@chromium.org>
> Reviewed-by: Dave Tapuska <dtapuska@chromium.org>
> Reviewed-by: Ahmed Fakhry <afakhry@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#773852}

TBR=sky@chromium.org,xdai@chromium.org,dtapuska@chromium.org,afakhry@chromium.org

Change-Id: I5123a071659d23d7731a55d1420442c9b878b8bd
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 1063144
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2225764Reviewed-by: default avatarThiemo Nagel <tnagel@chromium.org>
Commit-Queue: Thiemo Nagel <tnagel@chromium.org>
Cr-Commit-Position: refs/heads/master@{#774078}
parent f0ae06af
......@@ -6,14 +6,6 @@
namespace ash {
bool ShellDelegate::AllowDefaultTouchActions(gfx::NativeWindow window) {
return true;
}
bool ShellDelegate::ShouldWaitForTouchPressAck(gfx::NativeWindow window) {
return false;
}
bool ShellDelegate::IsTabDrag(const ui::OSExchangeData& drop_data) {
return false;
}
......
......@@ -58,16 +58,6 @@ class ASH_EXPORT ShellDelegate {
// Check whether the current tab of the browser window can go back.
virtual bool CanGoBack(gfx::NativeWindow window) const = 0;
// Returns true if |window| allows default touch behaviors. If false, it means
// no default touch behavior is allowed (i.e., the touch action of window is
// cc::TouchAction::kNone). This function is used by BackGestureEventHandler
// to decide if we can perform the system default back gesture.
virtual bool AllowDefaultTouchActions(gfx::NativeWindow window);
// Returns true if we should wait for touch press ack when deciding if back
// gesture can be performed.
virtual bool ShouldWaitForTouchPressAck(gfx::NativeWindow window);
// Checks whether a drag-drop operation is a tab drag.
virtual bool IsTabDrag(const ui::OSExchangeData& drop_data);
......
......@@ -13,7 +13,6 @@
#include "ash/session/session_controller_impl.h"
#include "ash/shelf/contextual_tooltip.h"
#include "ash/shell.h"
#include "ash/shell_delegate.h"
#include "ash/wm/gestures/back_gesture/back_gesture_affordance.h"
#include "ash/wm/gestures/back_gesture/back_gesture_contextual_nudge_controller_impl.h"
#include "ash/wm/overview/overview_controller.h"
......@@ -27,7 +26,6 @@
#include "ui/aura/client/aura_constants.h"
#include "ui/aura/window.h"
#include "ui/wm/core/coordinate_conversion.h"
#include "ui/wm/core/window_util.h"
namespace ash {
......@@ -172,20 +170,7 @@ void BackGestureEventHandler::OnDisplayMetricsChanged(
}
}
void BackGestureEventHandler::OnGestureEvent(ui::GestureEvent* event) {
if (should_wait_for_touch_ack_) {
aura::Window* target = static_cast<aura::Window*>(event->target());
gfx::Point screen_location = event->location();
::wm::ConvertPointToScreen(target, &screen_location);
if (MaybeHandleBackGesture(event, screen_location))
event->StopPropagation();
// Reset |should_wait_for_touch_ack_| for the last gesture event in the
// sequence.
if (event->type() == ui::ET_GESTURE_END)
should_wait_for_touch_ack_ = false;
}
}
void BackGestureEventHandler::OnGestureEvent(ui::GestureEvent* event) {}
void BackGestureEventHandler::OnTouchEvent(ui::TouchEvent* event) {
// Do not handle PEN and ERASER events for back gesture. PEN events can come
......@@ -223,6 +208,14 @@ void BackGestureEventHandler::OnTouchEvent(ui::TouchEvent* event) {
}
last_touch_point_ = event->location();
ui::TouchEvent touch_event_copy = *event;
if (!gesture_provider_.OnTouchEvent(&touch_event_copy))
return;
gesture_provider_.OnTouchEventAck(
touch_event_copy.unique_event_id(), /*event_consumed=*/false,
/*is_source_touch_event_set_non_blocking=*/false);
// Get the event target from TouchEvent since target of the GestureEvent
// from GetAndResetPendingGestures is nullptr. The coordinate conversion is
// done outside the loop as the previous gesture events in a sequence may
......@@ -233,28 +226,11 @@ void BackGestureEventHandler::OnTouchEvent(ui::TouchEvent* event) {
aura::Window* target = static_cast<aura::Window*>(event->target());
gfx::Point screen_location = event->location();
::wm::ConvertPointToScreen(target, &screen_location);
if (event->type() == ui::ET_TOUCH_PRESSED &&
ShouldWaitForTouchPressAck(screen_location)) {
should_wait_for_touch_ack_ = true;
return;
}
if (!should_wait_for_touch_ack_) {
ui::TouchEvent touch_event_copy = *event;
if (!gesture_provider_.OnTouchEvent(&touch_event_copy))
return;
gesture_provider_.OnTouchEventAck(
touch_event_copy.unique_event_id(), /*event_consumed=*/false,
/*is_source_touch_event_set_non_blocking=*/false);
std::vector<std::unique_ptr<ui::GestureEvent>> gestures =
gesture_provider_.GetAndResetPendingGestures();
for (const auto& gesture : gestures) {
if (MaybeHandleBackGesture(gesture.get(), screen_location))
event->StopPropagation();
}
const std::vector<std::unique_ptr<ui::GestureEvent>> gestures =
gesture_provider_.GetAndResetPendingGestures();
for (const auto& gesture : gestures) {
if (MaybeHandleBackGesture(gesture.get(), screen_location))
event->StopPropagation();
}
}
......@@ -410,8 +386,6 @@ bool BackGestureEventHandler::CanStartGoingBack(
if (!top_window && !shell->overview_controller()->InOverviewSession())
return false;
// If the event location falls into the window's gesture exclusion zone, do
// not handle it.
for (aura::Window* window = top_window; window; window = window->parent()) {
SkRegion* gesture_exclusion =
window->GetProperty(kSystemGestureExclusionKey);
......@@ -425,10 +399,6 @@ bool BackGestureEventHandler::CanStartGoingBack(
}
}
// If the target window does not allow touch action, do not handle it.
if (!Shell::Get()->shell_delegate()->AllowDefaultTouchActions(top_window))
return false;
gfx::Rect hit_bounds_in_screen(display::Screen::GetScreen()
->GetDisplayNearestWindow(top_window)
.work_area());
......@@ -451,14 +421,4 @@ void BackGestureEventHandler::SendBackEvent(const gfx::Point& screen_location) {
BackGestureEndType::kBack));
}
bool BackGestureEventHandler::ShouldWaitForTouchPressAck(
const gfx::Point& screen_location) {
if (!CanStartGoingBack(screen_location))
return false;
aura::Window* top_window = window_util::GetTopWindow();
return !top_window->GetProperty(kIsShowingInOverviewKey) &&
Shell::Get()->shell_delegate()->ShouldWaitForTouchPressAck(top_window);
}
} // namespace ash
......@@ -58,12 +58,6 @@ class BackGestureEventHandler : public display::DisplayObserver,
void SendBackEvent(const gfx::Point& screen_location);
// Returns true if we should wait for touch press ack to decide whether to
// show back gesture. If true, BackGestureEventHandler should not handle touch
// press event in OnTouchEvent() but should wait after touch ack has been
// received.
bool ShouldWaitForTouchPressAck(const gfx::Point& screen_location);
// True if swiping from left edge to go to previous page is in progress.
bool going_back_started_ = false;
......@@ -104,13 +98,6 @@ class BackGestureEventHandler : public display::DisplayObserver,
// instead of going back.
ui::GestureProviderAura gesture_provider_;
// False if BackGestureEventHandler should not handle touch events directly in
// OnTouchEvent(), but should wait after touch ack is received. This is needed
// as the window's touch action (if exist) will only be set after it sees the
// touch start event and we'll need the touch action information to decide
// whether back gesture should be shown.
bool should_wait_for_touch_ack_ = false;
// Start scenario type of the back gesture, used for related metrics.
BackGestureStartScenarioType back_gesture_start_scenario_type_ =
BackGestureStartScenarioType::kMaxValue;
......
// Copyright 2020 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 "ash/public/cpp/tablet_mode.h"
#include "ash/public/cpp/test/shell_test_api.h"
#include "base/path_service.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_window.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/test/base/in_process_browser_test.h"
#include "chrome/test/base/ui_test_utils.h"
#include "content/public/browser/render_widget_host.h"
#include "content/public/browser/render_widget_host_view.h"
#include "content/public/browser/web_contents.h"
#include "content/public/test/browser_test.h"
#include "content/public/test/browser_test_base.h"
#include "content/public/test/hit_test_region_observer.h"
#include "net/dns/mock_host_resolver.h"
#include "ui/aura/window.h"
#include "ui/base/test/ui_controls_aura.h"
#include "ui/events/test/event_generator.h"
#include "ui/events/types/event_type.h"
namespace {
// The class to record received gesture events and key events to verify if back
// gesture has been performed.
class BackGestureEventRecorder : public ui::EventHandler {
public:
BackGestureEventRecorder() = default;
BackGestureEventRecorder(const BackGestureEventRecorder&) = delete;
BackGestureEventRecorder& operator=(const BackGestureEventRecorder&) = delete;
~BackGestureEventRecorder() override = default;
// ui::EventHandler:
void OnGestureEvent(ui::GestureEvent* event) override {
received_event_types_.insert(event->type());
if (wait_for_event_ == event->type() && run_loop_) {
run_loop_->Quit();
wait_for_event_ = ui::EventType::ET_UNKNOWN;
}
}
void OnKeyEvent(ui::KeyEvent* event) override {
// If back gesture can be performed, a ui::VKEY_BROWSR_BACK key pressed and
// key released will be generated.
received_event_types_.insert(event->type());
}
void WaitUntilReceivedGestureEvent(ui::EventType event_type) {
wait_for_event_ = event_type;
run_loop_ = std::make_unique<base::RunLoop>();
run_loop_->Run();
}
bool HasReceivedEvent(ui::EventType event_type) {
return base::Contains(received_event_types_, event_type);
}
void Reset() {
received_event_types_.clear();
wait_for_event_ = ui::EventType::ET_UNKNOWN;
if (run_loop_)
run_loop_->Quit();
}
private:
// Stores the event types of the received gesture events.
base::flat_set<ui::EventType> received_event_types_;
ui::EventType wait_for_event_ = ui::EventType::ET_UNKNOWN;
std::unique_ptr<base::RunLoop> run_loop_;
};
} // namespace
class BackGestureBrowserTest : public InProcessBrowserTest {
public:
BackGestureBrowserTest() = default;
BackGestureBrowserTest(const BackGestureBrowserTest&) = delete;
BackGestureBrowserTest& operator=(const BackGestureBrowserTest&) = delete;
~BackGestureBrowserTest() override = default;
void SetUpOnMainThread() override {
InProcessBrowserTest::SetUpOnMainThread();
host_resolver()->AddRule("*", "127.0.0.1");
base::FilePath test_data_dir;
ASSERT_TRUE(base::PathService::Get(base::DIR_SOURCE_ROOT, &test_data_dir));
embedded_test_server()->ServeFilesFromDirectory(
test_data_dir.AppendASCII("chrome/test/data/ash/back_gesture"));
ASSERT_TRUE(embedded_test_server()->Start());
// Enter tablet mode.
ash::ShellTestApi().SetTabletModeEnabledForTest(true);
ASSERT_TRUE(ash::TabletMode::Get()->InTabletMode());
}
content::RenderWidgetHost* GetRenderWidgetHost() {
return browser()
->tab_strip_model()
->GetActiveWebContents()
->GetRenderWidgetHostView()
->GetRenderWidgetHost();
}
};
// Test back gesture behavior with different touch actions.
IN_PROC_BROWSER_TEST_F(BackGestureBrowserTest, TouchActions) {
// Navigate to a page with {touch-action: none} defined.
ui_test_utils::NavigateToURL(browser(), embedded_test_server()->GetURL(
"/page_touch_action_none.html"));
content::HitTestRegionObserver observer(
GetRenderWidgetHost()->GetFrameSinkId());
observer.WaitForHitTestData();
ASSERT_EQ(browser()->tab_strip_model()->count(), 1);
aura::Window* browser_window = browser()->window()->GetNativeWindow();
const gfx::Rect bounds = browser()->window()->GetBounds();
const gfx::Point start_point = bounds.left_center();
const gfx::Point end_point =
gfx::Point(start_point.x() + 200, start_point.y());
BackGestureEventRecorder recorder;
browser_window->AddPreTargetHandler(&recorder);
ui::test::EventGenerator event_generator(browser_window->GetRootWindow(),
browser_window);
event_generator.set_current_screen_location(start_point);
event_generator.PressTouch();
event_generator.MoveTouch(end_point);
event_generator.ReleaseTouch();
recorder.WaitUntilReceivedGestureEvent(ui::EventType::ET_GESTURE_END);
// BackGestureEventHandler did not handle gesture scroll events, so |recorder|
// should be able to get the scroll events.
EXPECT_TRUE(recorder.HasReceivedEvent(ui::EventType::ET_GESTURE_TAP_DOWN));
EXPECT_TRUE(
recorder.HasReceivedEvent(ui::EventType::ET_GESTURE_SCROLL_BEGIN));
EXPECT_TRUE(
recorder.HasReceivedEvent(ui::EventType::ET_GESTURE_SCROLL_UPDATE));
EXPECT_TRUE(recorder.HasReceivedEvent(ui::EventType::ET_GESTURE_SCROLL_END) ||
recorder.HasReceivedEvent(ui::EventType::ET_SCROLL_FLING_START));
// ui::VKEY_BROWSR_BACK key pressed and key released will not be generated
// because back operation is not performed.
EXPECT_FALSE(recorder.HasReceivedEvent(ui::EventType::ET_KEY_PRESSED));
EXPECT_FALSE(recorder.HasReceivedEvent(ui::EventType::ET_KEY_RELEASED));
recorder.Reset();
// Now navigate to a page with {touch-action: auto} defined.
ui_test_utils::NavigateToURL(browser(), embedded_test_server()->GetURL(
"/page_touch_action_auto.html"));
content::HitTestRegionObserver observer2(
GetRenderWidgetHost()->GetFrameSinkId());
observer2.WaitForHitTestData();
event_generator.set_current_screen_location(start_point);
event_generator.PressTouch();
event_generator.MoveTouch(end_point);
event_generator.ReleaseTouch();
recorder.WaitUntilReceivedGestureEvent(ui::EventType::ET_GESTURE_END);
// BackGestureEventHandler has handled gesture scroll events, so |recorder|
// should not be able to get the scroll events.
EXPECT_FALSE(recorder.HasReceivedEvent(ui::EventType::ET_GESTURE_TAP_DOWN));
EXPECT_FALSE(
recorder.HasReceivedEvent(ui::EventType::ET_GESTURE_SCROLL_BEGIN));
EXPECT_FALSE(
recorder.HasReceivedEvent(ui::EventType::ET_GESTURE_SCROLL_UPDATE));
EXPECT_FALSE(recorder.HasReceivedEvent(ui::EventType::ET_GESTURE_SCROLL_END));
EXPECT_FALSE(recorder.HasReceivedEvent(ui::EventType::ET_SCROLL_FLING_START));
// ui::VKEY_BROWSR_BACK key pressed and key released will be generated because
// back operation can be performed.
EXPECT_TRUE(recorder.HasReceivedEvent(ui::EventType::ET_KEY_PRESSED));
EXPECT_TRUE(recorder.HasReceivedEvent(ui::EventType::ET_KEY_RELEASED));
browser_window->RemovePreTargetHandler(&recorder);
}
// Test the back gesture behavior on page that has prevented default touch
// behavior.
IN_PROC_BROWSER_TEST_F(BackGestureBrowserTest, PreventDefault) {
ui_test_utils::NavigateToURL(
browser(), embedded_test_server()->GetURL("/page_prevent_default.html"));
content::HitTestRegionObserver observer(
GetRenderWidgetHost()->GetFrameSinkId());
observer.WaitForHitTestData();
ASSERT_EQ(browser()->tab_strip_model()->count(), 1);
aura::Window* browser_window = browser()->window()->GetNativeWindow();
const gfx::Rect bounds = browser()->window()->GetBounds();
BackGestureEventRecorder recorder;
browser_window->AddPreTargetHandler(&recorder);
// Start drag on the page that prevents default touch behavior.
const gfx::Point start_point = bounds.left_center();
const gfx::Point end_point =
gfx::Point(start_point.x() + 200, start_point.y());
ui::test::EventGenerator event_generator(browser_window->GetRootWindow(),
browser_window);
event_generator.set_current_screen_location(start_point);
event_generator.PressTouch();
event_generator.MoveTouch(end_point);
event_generator.ReleaseTouch();
recorder.WaitUntilReceivedGestureEvent(ui::EventType::ET_GESTURE_END);
// ui::VKEY_BROWSR_BACK key pressed and key released will not be generated
// because back operation is not performed.
EXPECT_FALSE(recorder.HasReceivedEvent(ui::EventType::ET_KEY_PRESSED));
EXPECT_FALSE(recorder.HasReceivedEvent(ui::EventType::ET_KEY_RELEASED));
browser_window->RemovePreTargetHandler(&recorder);
}
......@@ -32,8 +32,6 @@
#include "chromeos/services/multidevice_setup/multidevice_setup_service.h"
#include "content/public/browser/device_service.h"
#include "content/public/browser/media_session_service.h"
#include "content/public/browser/render_widget_host.h"
#include "content/public/browser/render_widget_host_view.h"
#include "ui/aura/window.h"
#include "url/gurl.h"
......@@ -42,17 +40,6 @@ namespace {
const char kKeyboardShortcutHelpPageUrl[] =
"https://support.google.com/chromebook/answer/183101";
content::WebContents* GetActiveWebContentsForNativeBrowserWindow(
gfx::NativeWindow window) {
if (!window)
return nullptr;
BrowserView* browser_view =
BrowserView::GetBrowserViewForNativeWindow(window);
if (!browser_view)
return nullptr;
return browser_view->browser()->tab_strip_model()->GetActiveWebContents();
}
} // namespace
ChromeShellDelegate::ChromeShellDelegate() = default;
......@@ -76,41 +63,15 @@ void ChromeShellDelegate::OpenKeyboardShortcutHelpPage() const {
}
bool ChromeShellDelegate::CanGoBack(gfx::NativeWindow window) const {
BrowserView* browser_view =
BrowserView::GetBrowserViewForNativeWindow(window);
if (!browser_view)
return false;
content::WebContents* contents =
GetActiveWebContentsForNativeBrowserWindow(window);
return contents ? contents->GetController().CanGoBack() : false;
}
bool ChromeShellDelegate::AllowDefaultTouchActions(gfx::NativeWindow window) {
content::WebContents* contents =
GetActiveWebContentsForNativeBrowserWindow(window);
if (!contents)
return true;
content::RenderWidgetHostView* render_widget_host_view =
contents->GetRenderWidgetHostView();
if (!render_widget_host_view)
return true;
content::RenderWidgetHost* render_widget_host =
render_widget_host_view->GetRenderWidgetHost();
if (!render_widget_host)
return true;
base::Optional<cc::TouchAction> allowed_touch_action =
render_widget_host->GetAllowedTouchAction();
return allowed_touch_action.has_value()
? *allowed_touch_action != cc::TouchAction::kNone
: true;
}
bool ChromeShellDelegate::ShouldWaitForTouchPressAck(gfx::NativeWindow window) {
content::WebContents* contents =
GetActiveWebContentsForNativeBrowserWindow(window);
browser_view->browser()->tab_strip_model()->GetActiveWebContents();
if (!contents)
return false;
content::RenderWidgetHostView* render_widget_host_view =
contents->GetRenderWidgetHostView();
if (!render_widget_host_view)
return false;
return !!render_widget_host_view->GetRenderWidgetHost();
return contents->GetController().CanGoBack();
}
bool ChromeShellDelegate::IsTabDrag(const ui::OSExchangeData& drop_data) {
......
......@@ -24,8 +24,6 @@ class ChromeShellDelegate : public ash::ShellDelegate {
ash::BackGestureContextualNudgeController* controller) override;
void OpenKeyboardShortcutHelpPage() const override;
bool CanGoBack(gfx::NativeWindow window) const override;
bool AllowDefaultTouchActions(gfx::NativeWindow window) override;
bool ShouldWaitForTouchPressAck(gfx::NativeWindow window) override;
bool IsTabDrag(const ui::OSExchangeData& drop_data) override;
aura::Window* CreateBrowserForTabDrop(
aura::Window* source_window,
......
......@@ -2394,7 +2394,6 @@ if (!is_android) {
"../browser/ui/app_list/chrome_app_list_model_updater_browsertest.cc",
"../browser/ui/ash/accelerator_commands_browsertest.cc",
"../browser/ui/ash/assistant/assistant_context_browsertest.cc",
"../browser/ui/ash/back_gesture_browsertest.cc",
"../browser/ui/ash/chrome_new_window_client_browsertest.cc",
"../browser/ui/ash/chrome_screenshot_grabber_browsertest.cc",
"../browser/ui/ash/keyboard/keyboard_controller_browsertest.cc",
......
<!DOCTYPE html>
<html>
<style>
body {
position: absolute;
width: 100%;
height: 100%;
margin: 0;
padding: 0;
}
#prevent_default_id {
width: 100%;
height: 100%;
}
</style>
<body>
<div id="prevent_default_id"></div>
<script>
document.querySelector("#prevent_default_id").addEventListener(
"touchmove", function(e) { e.preventDefault(); });
</script>
</body>
</html>
<!DOCTYPE html>
<html>
<style>
body {
position: absolute;
width: 100%;
height: 100%;
margin: 0;
padding: 0;
touch-action: auto;
}
</style>
<body>
</body>
</html>
<!DOCTYPE html>
<html>
<style>
body {
position: absolute;
width: 100%;
height: 100%;
margin: 0;
padding: 0;
touch-action: none;
}
</style>
<body>
</body>
</html>
......@@ -1671,10 +1671,6 @@ void RenderWidgetHostImpl::GetScreenInfo(ScreenInfo* result) {
input_router_->SetDeviceScaleFactor(result->device_scale_factor);
}
base::Optional<cc::TouchAction> RenderWidgetHostImpl::GetAllowedTouchAction() {
return input_router_->AllowedTouchAction();
}
void RenderWidgetHostImpl::DragTargetDragEnter(
const DropData& drop_data,
const gfx::PointF& client_pt,
......
......@@ -228,7 +228,6 @@ class CONTENT_EXPORT RenderWidgetHostImpl
void AddObserver(RenderWidgetHostObserver* observer) override;
void RemoveObserver(RenderWidgetHostObserver* observer) override;
void GetScreenInfo(content::ScreenInfo* result) override;
base::Optional<cc::TouchAction> GetAllowedTouchAction() override;
// |drop_data| must have been filtered. The embedder should call
// FilterDropData before passing the drop data to RWHI.
void DragTargetDragEnter(const DropData& drop_data,
......
......@@ -12,7 +12,6 @@
#include "base/callback.h"
#include "base/i18n/rtl.h"
#include "base/optional.h"
#include "build/build_config.h"
#include "content/common/content_export.h"
#include "content/public/browser/native_web_keyboard_event.h"
......@@ -31,10 +30,6 @@ class WebMouseEvent;
class WebMouseWheelEvent;
}
namespace cc {
enum class TouchAction;
}
namespace gfx {
class Point;
}
......@@ -283,9 +278,6 @@ class CONTENT_EXPORT RenderWidgetHost : public IPC::Sender {
// Get the screen info corresponding to this render widget.
virtual void GetScreenInfo(ScreenInfo* result) = 0;
// Get the allowed touch action corresponding to this render widget.
virtual base::Optional<cc::TouchAction> GetAllowedTouchAction() = 0;
// Drag-and-drop drop target messages that get sent to Blink.
virtual void DragTargetDragEnter(
const DropData& drop_data,
......
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