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

Side by Side Diff: third_party/WebKit/Source/core/frame/EventHandlerRegistry.cpp

Issue 2916893003: Bookkeep the pointer event listeners added to page (Closed)
Patch Set: 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 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "core/frame/EventHandlerRegistry.h" 5 #include "core/frame/EventHandlerRegistry.h"
6 6
7 #include "core/events/EventListenerOptions.h" 7 #include "core/events/EventListenerOptions.h"
8 #include "core/events/EventUtil.h" 8 #include "core/events/EventUtil.h"
9 #include "core/frame/LocalDOMWindow.h" 9 #include "core/frame/LocalDOMWindow.h"
10 #include "core/frame/LocalFrame.h" 10 #include "core/frame/LocalFrame.h"
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 *result = options.passive() ? kWheelEventPassive : kWheelEventBlocking; 49 *result = options.passive() ? kWheelEventPassive : kWheelEventBlocking;
50 } else if (event_type == EventTypeNames::touchend || 50 } else if (event_type == EventTypeNames::touchend ||
51 event_type == EventTypeNames::touchcancel) { 51 event_type == EventTypeNames::touchcancel) {
52 *result = options.passive() ? kTouchEndOrCancelEventPassive 52 *result = options.passive() ? kTouchEndOrCancelEventPassive
53 : kTouchEndOrCancelEventBlocking; 53 : kTouchEndOrCancelEventBlocking;
54 } else if (event_type == EventTypeNames::touchstart || 54 } else if (event_type == EventTypeNames::touchstart ||
55 event_type == EventTypeNames::touchmove) { 55 event_type == EventTypeNames::touchmove) {
56 *result = options.passive() ? kTouchStartOrMoveEventPassive 56 *result = options.passive() ? kTouchStartOrMoveEventPassive
57 : kTouchStartOrMoveEventBlocking; 57 : kTouchStartOrMoveEventBlocking;
58 } else if (EventUtil::IsPointerEventType(event_type)) { 58 } else if (EventUtil::IsPointerEventType(event_type)) {
59 // The EventHandlerClass is TouchStartOrMoveEventPassive since 59 // The pointer events never block scrolling and the compositor
60 // the pointer events never block scrolling and the compositor
61 // only needs to know about the touch listeners. 60 // only needs to know about the touch listeners.
62 *result = kTouchStartOrMoveEventPassive; 61 *result = kPointerEvent;
63 #if DCHECK_IS_ON() 62 #if DCHECK_IS_ON()
64 } else if (event_type == EventTypeNames::load || 63 } else if (event_type == EventTypeNames::load ||
65 event_type == EventTypeNames::mousemove || 64 event_type == EventTypeNames::mousemove ||
66 event_type == EventTypeNames::touchstart) { 65 event_type == EventTypeNames::touchstart) {
67 *result = kEventsForTesting; 66 *result = kEventsForTesting;
68 #endif 67 #endif
69 } else { 68 } else {
70 return false; 69 return false;
71 } 70 }
72 return true; 71 return true;
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
217 break; 216 break;
218 case kWheelEventBlocking: 217 case kWheelEventBlocking:
219 case kWheelEventPassive: 218 case kWheelEventPassive:
220 page_->GetChromeClient().SetEventListenerProperties( 219 page_->GetChromeClient().SetEventListenerProperties(
221 frame, WebEventListenerClass::kMouseWheel, 220 frame, WebEventListenerClass::kMouseWheel,
222 GetWebEventListenerProperties(HasEventHandlers(kWheelEventBlocking), 221 GetWebEventListenerProperties(HasEventHandlers(kWheelEventBlocking),
223 HasEventHandlers(kWheelEventPassive))); 222 HasEventHandlers(kWheelEventPassive)));
224 break; 223 break;
225 case kTouchStartOrMoveEventBlocking: 224 case kTouchStartOrMoveEventBlocking:
226 case kTouchStartOrMoveEventPassive: 225 case kTouchStartOrMoveEventPassive:
226 case kPointerEvent:
227 page_->GetChromeClient().SetEventListenerProperties( 227 page_->GetChromeClient().SetEventListenerProperties(
228 frame, WebEventListenerClass::kTouchStartOrMove, 228 frame, WebEventListenerClass::kTouchStartOrMove,
229 GetWebEventListenerProperties( 229 GetWebEventListenerProperties(
230 HasEventHandlers(kTouchStartOrMoveEventBlocking), 230 HasEventHandlers(kTouchStartOrMoveEventBlocking),
231 HasEventHandlers(kTouchStartOrMoveEventPassive))); 231 HasEventHandlers(kTouchStartOrMoveEventPassive) ||
232 HasEventHandlers(kPointerEvent)));
232 break; 233 break;
233 case kTouchEndOrCancelEventBlocking: 234 case kTouchEndOrCancelEventBlocking:
234 case kTouchEndOrCancelEventPassive: 235 case kTouchEndOrCancelEventPassive:
235 page_->GetChromeClient().SetEventListenerProperties( 236 page_->GetChromeClient().SetEventListenerProperties(
236 frame, WebEventListenerClass::kTouchEndOrCancel, 237 frame, WebEventListenerClass::kTouchEndOrCancel,
237 GetWebEventListenerProperties( 238 GetWebEventListenerProperties(
238 HasEventHandlers(kTouchEndOrCancelEventBlocking), 239 HasEventHandlers(kTouchEndOrCancelEventBlocking),
239 HasEventHandlers(kTouchEndOrCancelEventPassive))); 240 HasEventHandlers(kTouchEndOrCancelEventPassive)));
240 break; 241 break;
241 #if DCHECK_IS_ON() 242 #if DCHECK_IS_ON()
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
326 // its handlers properly. 327 // its handlers properly.
327 DCHECK(window->GetFrame()); 328 DCHECK(window->GetFrame());
328 DCHECK(window->GetFrame()->GetPage()); 329 DCHECK(window->GetFrame()->GetPage());
329 DCHECK(window->GetFrame()->GetPage() == page_); 330 DCHECK(window->GetFrame()->GetPage() == page_);
330 } 331 }
331 } 332 }
332 #endif // DCHECK_IS_ON() 333 #endif // DCHECK_IS_ON()
333 } 334 }
334 335
335 } // namespace blink 336 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698