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

Side by Side Diff: content/browser/renderer_host/input/input_router_impl.cc

Issue 1888163003: Articulate the cancel behavior in the WebTouchEvent. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase and non-const ref passed back Created 4 years, 8 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 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "content/browser/renderer_host/input/input_router_impl.h" 5 #include "content/browser/renderer_host/input/input_router_impl.h"
6 6
7 #include <math.h> 7 #include <math.h>
8 8
9 #include <utility> 9 #include <utility>
10 10
(...skipping 354 matching lines...) Expand 10 before | Expand all | Expand 10 after
365 OfferToHandlers(input_event, latency_info); 365 OfferToHandlers(input_event, latency_info);
366 } 366 }
367 367
368 void InputRouterImpl::OfferToHandlers(const WebInputEvent& input_event, 368 void InputRouterImpl::OfferToHandlers(const WebInputEvent& input_event,
369 const ui::LatencyInfo& latency_info) { 369 const ui::LatencyInfo& latency_info) {
370 output_stream_validator_.Validate(input_event); 370 output_stream_validator_.Validate(input_event);
371 371
372 if (OfferToClient(input_event, latency_info)) 372 if (OfferToClient(input_event, latency_info))
373 return; 373 return;
374 374
375 // Touch events should always indicate in the event whether they are
376 // cancelable (respect ACK disposition) or not, except touchmove and
377 // touchscollstarted.
378 bool should_block = WebInputEventTraits::ShouldBlockEventStream(input_event); 375 bool should_block = WebInputEventTraits::ShouldBlockEventStream(input_event);
379 if (WebInputEvent::isTouchEventType(input_event.type) &&
380 input_event.type != WebInputEvent::TouchMove &&
381 input_event.type != WebInputEvent::TouchScrollStarted) {
382 const WebTouchEvent& touch = static_cast<const WebTouchEvent&>(input_event);
383 DCHECK_EQ(should_block, touch.cancelable);
384 }
385
386 OfferToRenderer(input_event, latency_info, 376 OfferToRenderer(input_event, latency_info,
387 should_block 377 should_block
388 ? InputEventDispatchType::DISPATCH_TYPE_BLOCKING 378 ? InputEventDispatchType::DISPATCH_TYPE_BLOCKING
389 : InputEventDispatchType::DISPATCH_TYPE_NON_BLOCKING); 379 : InputEventDispatchType::DISPATCH_TYPE_NON_BLOCKING);
390 380
391 // Generate a synthetic ack if the event was sent so it doesn't block. 381 // Generate a synthetic ack if the event was sent so it doesn't block.
392 if (!should_block) { 382 if (!should_block) {
393 ProcessInputEventAck( 383 ProcessInputEventAck(
394 input_event.type, INPUT_EVENT_ACK_STATE_IGNORED, latency_info, 384 input_event.type, INPUT_EVENT_ACK_STATE_IGNORED, latency_info,
395 WebInputEventTraits::GetUniqueTouchEventId(input_event), 385 WebInputEventTraits::GetUniqueTouchEventId(input_event),
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after
647 637
648 flush_requested_ = false; 638 flush_requested_ = false;
649 client_->DidFlush(); 639 client_->DidFlush();
650 } 640 }
651 641
652 void InputRouterImpl::SetFrameTreeNodeId(int frameTreeNodeId) { 642 void InputRouterImpl::SetFrameTreeNodeId(int frameTreeNodeId) {
653 frame_tree_node_id_ = frameTreeNodeId; 643 frame_tree_node_id_ = frameTreeNodeId;
654 } 644 }
655 645
656 } // namespace content 646 } // namespace content
OLDNEW
« no previous file with comments | « components/test_runner/event_sender.cc ('k') | content/browser/renderer_host/input/touch_emulator_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698