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

Side by Side Diff: third_party/WebKit/Source/core/events/EventTarget.cpp

Issue 2272993004: Clarify devtools console log when a passive event listener is preventDefaulted. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add not reached Created 4 years, 3 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 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2001 Dirk Mueller (mueller@kde.org) 4 * (C) 2001 Dirk Mueller (mueller@kde.org)
5 * Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved. 5 * Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved.
6 * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org) 6 * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org)
7 * (C) 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org> 7 * (C) 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
8 * 8 *
9 * Redistribution and use in source and binary forms, with or without 9 * Redistribution and use in source and binary forms, with or without
10 * modification, are permitted provided that the following conditions 10 * modification, are permitted provided that the following conditions
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 58
59 namespace blink { 59 namespace blink {
60 namespace { 60 namespace {
61 61
62 enum PassiveForcedListenerResultType { 62 enum PassiveForcedListenerResultType {
63 PreventDefaultNotCalled, 63 PreventDefaultNotCalled,
64 DocumentLevelTouchPreventDefaultCalled, 64 DocumentLevelTouchPreventDefaultCalled,
65 PassiveForcedListenerResultTypeMax 65 PassiveForcedListenerResultTypeMax
66 }; 66 };
67 67
68 Event::PassiveMode eventPassiveMode(const RegisteredEventListener& eventListener )
69 {
70 if (!eventListener.passive())
71 return Event::PassiveMode::NotPassive;
72 if (eventListener.passiveForcedForDocumentTarget())
73 return Event::PassiveMode::PassiveForcedDocumentLevel;
74 return Event::PassiveMode::Passive;
75 }
76
68 Settings* windowSettings(LocalDOMWindow* executingWindow) 77 Settings* windowSettings(LocalDOMWindow* executingWindow)
69 { 78 {
70 if (executingWindow) { 79 if (executingWindow) {
71 if (LocalFrame* frame = executingWindow->frame()) { 80 if (LocalFrame* frame = executingWindow->frame()) {
72 return frame->settings(); 81 return frame->settings();
73 } 82 }
74 } 83 }
75 return nullptr; 84 return nullptr;
76 } 85 }
77 86
(...skipping 542 matching lines...) Expand 10 before | Expand all | Expand 10 after
620 if (event->eventPhase() == Event::kCapturingPhase && !registeredListener .capture()) 629 if (event->eventPhase() == Event::kCapturingPhase && !registeredListener .capture())
621 continue; 630 continue;
622 if (event->eventPhase() == Event::kBubblingPhase && registeredListener.c apture()) 631 if (event->eventPhase() == Event::kBubblingPhase && registeredListener.c apture())
623 continue; 632 continue;
624 633
625 // If stopImmediatePropagation has been called, we just break out immedi ately, without 634 // If stopImmediatePropagation has been called, we just break out immedi ately, without
626 // handling any more events on this target. 635 // handling any more events on this target.
627 if (event->immediatePropagationStopped()) 636 if (event->immediatePropagationStopped())
628 break; 637 break;
629 638
630 event->setHandlingPassive(registeredListener.passive()); 639 event->setHandlingPassive(eventPassiveMode(registeredListener));
631 bool passiveForced = registeredListener.passiveForcedForDocumentTarget() ; 640 bool passiveForced = registeredListener.passiveForcedForDocumentTarget() ;
632 641
633 InspectorInstrumentation::NativeBreakpoint nativeBreakpoint(context, thi s, event); 642 InspectorInstrumentation::NativeBreakpoint nativeBreakpoint(context, thi s, event);
634 643
635 EventListener* listener = registeredListener.listener(); 644 EventListener* listener = registeredListener.listener();
636 645
637 // To match Mozilla, the AT_TARGET phase fires both capturing and bubbli ng 646 // To match Mozilla, the AT_TARGET phase fires both capturing and bubbli ng
638 // event listeners, even though that violates some versions of the DOM s pec. 647 // event listeners, even though that violates some versions of the DOM s pec.
639 listener->handleEvent(context, event); 648 listener->handleEvent(context, event);
640 firedListener = true; 649 firedListener = true;
641 650
642 // If we're about to report this event listener as blocking, make sure i t wasn't 651 // If we're about to report this event listener as blocking, make sure i t wasn't
643 // removed while handling the event. 652 // removed while handling the event.
644 if (shouldReportBlockedEvent && i > 0 && entry[i - 1].listener() == list ener 653 if (shouldReportBlockedEvent && i > 0 && entry[i - 1].listener() == list ener
645 && !entry[i - 1].passive() && !entry[i - 1].blockedEventWarningEmitt ed() && !event->defaultPrevented()) { 654 && !entry[i - 1].passive() && !entry[i - 1].blockedEventWarningEmitt ed() && !event->defaultPrevented()) {
646 reportBlockedEvent(context, event, &entry[i - 1], now - event->platf ormTimeStamp()); 655 reportBlockedEvent(context, event, &entry[i - 1], now - event->platf ormTimeStamp());
647 } 656 }
648 657
649 if (passiveForced) { 658 if (passiveForced) {
650 DEFINE_STATIC_LOCAL(EnumerationHistogram, passiveForcedHistogram, (" Event.PassiveForcedEventDispatchCancelled", PassiveForcedListenerResultTypeMax)) ; 659 DEFINE_STATIC_LOCAL(EnumerationHistogram, passiveForcedHistogram, (" Event.PassiveForcedEventDispatchCancelled", PassiveForcedListenerResultTypeMax)) ;
651 PassiveForcedListenerResultType breakageType = PreventDefaultNotCall ed; 660 PassiveForcedListenerResultType breakageType = PreventDefaultNotCall ed;
652 if (event->preventDefaultCalledDuringPassive()) 661 if (event->preventDefaultCalledDuringPassive())
653 breakageType = DocumentLevelTouchPreventDefaultCalled; 662 breakageType = DocumentLevelTouchPreventDefaultCalled;
654 663
655 passiveForcedHistogram.count(breakageType); 664 passiveForcedHistogram.count(breakageType);
656 } 665 }
657 666
658 event->setHandlingPassive(false); 667 event->setHandlingPassive(Event::PassiveMode::NotPassive);
659 668
660 CHECK_LE(i, size); 669 CHECK_LE(i, size);
661 } 670 }
662 d->firingEventIterators->removeLast(); 671 d->firingEventIterators->removeLast();
663 return firedListener; 672 return firedListener;
664 } 673 }
665 674
666 DispatchEventResult EventTarget::dispatchEventResult(const Event& event) 675 DispatchEventResult EventTarget::dispatchEventResult(const Event& event)
667 { 676 {
668 if (event.defaultPrevented()) 677 if (event.defaultPrevented())
(...skipping 28 matching lines...) Expand all
697 // they have one less listener to invoke. 706 // they have one less listener to invoke.
698 if (d->firingEventIterators) { 707 if (d->firingEventIterators) {
699 for (size_t i = 0; i < d->firingEventIterators->size(); ++i) { 708 for (size_t i = 0; i < d->firingEventIterators->size(); ++i) {
700 d->firingEventIterators->at(i).iterator = 0; 709 d->firingEventIterators->at(i).iterator = 0;
701 d->firingEventIterators->at(i).end = 0; 710 d->firingEventIterators->at(i).end = 0;
702 } 711 }
703 } 712 }
704 } 713 }
705 714
706 } // namespace blink 715 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/events/Event.cpp ('k') | third_party/WebKit/Source/core/events/TouchEvent.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698