Commit 2e35d508 authored by Hayato Ito's avatar Hayato Ito Committed by Commit Bot

Use a reference instead of a pointer in core/dom/events.

They never be nullptr. There are still other places which should be
a reference, which can be done in another CL.

Bug: 874385
Change-Id: I278e022b40a621115d627ac21cdbb9658f98733e
Reviewed-on: https://chromium-review.googlesource.com/c/1333167
Commit-Queue: Hayato Ito <hayato@chromium.org>
Reviewed-by: default avatarKent Tamura <tkent@chromium.org>
Cr-Commit-Position: refs/heads/master@{#607478}
parent 16c71b54
...@@ -1119,7 +1119,7 @@ void CSSAnimations::CalculateTransitionActiveInterpolations( ...@@ -1119,7 +1119,7 @@ void CSSAnimations::CalculateTransitionActiveInterpolations(
} }
EventTarget* CSSAnimations::AnimationEventDelegate::GetEventTarget() const { EventTarget* CSSAnimations::AnimationEventDelegate::GetEventTarget() const {
return EventPath::EventTargetRespectingTargetRules(*animation_target_); return &EventPath::EventTargetRespectingTargetRules(*animation_target_);
} }
void CSSAnimations::AnimationEventDelegate::MaybeDispatch( void CSSAnimations::AnimationEventDelegate::MaybeDispatch(
...@@ -1189,7 +1189,7 @@ void CSSAnimations::AnimationEventDelegate::Trace(blink::Visitor* visitor) { ...@@ -1189,7 +1189,7 @@ void CSSAnimations::AnimationEventDelegate::Trace(blink::Visitor* visitor) {
} }
EventTarget* CSSAnimations::TransitionEventDelegate::GetEventTarget() const { EventTarget* CSSAnimations::TransitionEventDelegate::GetEventTarget() const {
return EventPath::EventTargetRespectingTargetRules(*transition_target_); return &EventPath::EventTargetRespectingTargetRules(*transition_target_);
} }
void CSSAnimations::TransitionEventDelegate::OnEventCondition( void CSSAnimations::TransitionEventDelegate::OnEventCondition(
......
...@@ -70,7 +70,7 @@ EventDispatcher::EventDispatcher(Node& node, Event& event) ...@@ -70,7 +70,7 @@ EventDispatcher::EventDispatcher(Node& node, Event& event)
void EventDispatcher::DispatchScopedEvent(Node& node, Event& event) { void EventDispatcher::DispatchScopedEvent(Node& node, Event& event) {
// We need to set the target here because it can go away by the time we // We need to set the target here because it can go away by the time we
// actually fire the event. // actually fire the event.
event.SetTarget(EventPath::EventTargetRespectingTargetRules(node)); event.SetTarget(&EventPath::EventTargetRespectingTargetRules(node));
ScopedEventQueue::Instance()->EnqueueEvent(event); ScopedEventQueue::Instance()->EnqueueEvent(event);
} }
...@@ -192,7 +192,7 @@ DispatchEventResult EventDispatcher::Dispatch() { ...@@ -192,7 +192,7 @@ DispatchEventResult EventDispatcher::Dispatch() {
} }
} }
event_->SetTarget(EventPath::EventTargetRespectingTargetRules(*node_)); event_->SetTarget(&EventPath::EventTargetRespectingTargetRules(*node_));
#if DCHECK_IS_ON() #if DCHECK_IS_ON()
DCHECK(!EventDispatchForbiddenScope::IsEventDispatchForbidden()); DCHECK(!EventDispatchForbiddenScope::IsEventDispatchForbidden());
#endif #endif
...@@ -306,7 +306,7 @@ inline void EventDispatcher::DispatchEventAtBubbling() { ...@@ -306,7 +306,7 @@ inline void EventDispatcher::DispatchEventAtBubbling() {
inline void EventDispatcher::DispatchEventPostProcess( inline void EventDispatcher::DispatchEventPostProcess(
Node* activation_target, Node* activation_target,
EventDispatchHandlingState* pre_dispatch_event_handler_result) { EventDispatchHandlingState* pre_dispatch_event_handler_result) {
event_->SetTarget(EventPath::EventTargetRespectingTargetRules(*node_)); event_->SetTarget(&EventPath::EventTargetRespectingTargetRules(*node_));
// https://dom.spec.whatwg.org/#concept-event-dispatch // https://dom.spec.whatwg.org/#concept-event-dispatch
// 14. Unset event’s dispatch flag, stop propagation flag, and stop immediate // 14. Unset event’s dispatch flag, stop propagation flag, and stop immediate
// propagation flag. // propagation flag.
......
...@@ -38,13 +38,13 @@ ...@@ -38,13 +38,13 @@
namespace blink { namespace blink {
EventTarget* EventPath::EventTargetRespectingTargetRules(Node& reference_node) { EventTarget& EventPath::EventTargetRespectingTargetRules(Node& reference_node) {
if (reference_node.IsPseudoElement()) { if (reference_node.IsPseudoElement()) {
DCHECK(reference_node.parentNode()); DCHECK(reference_node.parentNode());
return reference_node.parentNode(); return *reference_node.parentNode();
} }
return &reference_node; return reference_node;
} }
static inline bool ShouldStopAtShadowRoot(Event& event, static inline bool ShouldStopAtShadowRoot(Event& event,
...@@ -133,8 +133,9 @@ void EventPath::CalculatePath() { ...@@ -133,8 +133,9 @@ void EventPath::CalculatePath() {
node_event_contexts_.ReserveCapacity(nodes_in_path.size()); node_event_contexts_.ReserveCapacity(nodes_in_path.size());
for (Node* node_in_path : nodes_in_path) { for (Node* node_in_path : nodes_in_path) {
DCHECK(node_in_path);
node_event_contexts_.push_back(NodeEventContext( node_event_contexts_.push_back(NodeEventContext(
node_in_path, EventTargetRespectingTargetRules(*node_in_path))); *node_in_path, EventTargetRespectingTargetRules(*node_in_path)));
} }
} }
...@@ -189,7 +190,7 @@ TreeScopeEventContext* EventPath::EnsureTreeScopeEventContext( ...@@ -189,7 +190,7 @@ TreeScopeEventContext* EventPath::EnsureTreeScopeEventContext(
if (parent_tree_scope_event_context && if (parent_tree_scope_event_context &&
parent_tree_scope_event_context->Target()) { parent_tree_scope_event_context->Target()) {
tree_scope_event_context->SetTarget( tree_scope_event_context->SetTarget(
parent_tree_scope_event_context->Target()); *parent_tree_scope_event_context->Target());
} else if (current_target) { } else if (current_target) {
tree_scope_event_context->SetTarget( tree_scope_event_context->SetTarget(
EventTargetRespectingTargetRules(*current_target)); EventTargetRespectingTargetRules(*current_target));
...@@ -273,7 +274,7 @@ void EventPath::RetargetRelatedTarget(const Node& related_target_node) { ...@@ -273,7 +274,7 @@ void EventPath::RetargetRelatedTarget(const Node& related_target_node) {
EventTarget* adjusted_related_target = FindRelatedNode( EventTarget* adjusted_related_target = FindRelatedNode(
tree_scope_event_context->GetTreeScope(), related_node_map); tree_scope_event_context->GetTreeScope(), related_node_map);
DCHECK(adjusted_related_target); DCHECK(adjusted_related_target);
tree_scope_event_context.Get()->SetRelatedTarget(adjusted_related_target); tree_scope_event_context.Get()->SetRelatedTarget(*adjusted_related_target);
} }
} }
......
...@@ -82,7 +82,7 @@ class CORE_EXPORT EventPath final ...@@ -82,7 +82,7 @@ class CORE_EXPORT EventPath final
NodeEventContext& TopNodeEventContext(); NodeEventContext& TopNodeEventContext();
static EventTarget* EventTargetRespectingTargetRules(Node&); static EventTarget& EventTargetRespectingTargetRules(Node&);
void Trace(blink::Visitor*); void Trace(blink::Visitor*);
void Clear() { void Clear() {
......
...@@ -35,10 +35,8 @@ ...@@ -35,10 +35,8 @@
namespace blink { namespace blink {
NodeEventContext::NodeEventContext(Node* node, EventTarget* current_target) NodeEventContext::NodeEventContext(Node& node, EventTarget& current_target)
: node_(node), current_target_(current_target) { : node_(node), current_target_(current_target) {}
DCHECK(node_);
}
void NodeEventContext::Trace(blink::Visitor* visitor) { void NodeEventContext::Trace(blink::Visitor* visitor) {
visitor->Trace(node_); visitor->Trace(node_);
......
...@@ -42,7 +42,7 @@ class CORE_EXPORT NodeEventContext { ...@@ -42,7 +42,7 @@ class CORE_EXPORT NodeEventContext {
public: public:
// FIXME: Use ContainerNode instead of Node. // FIXME: Use ContainerNode instead of Node.
NodeEventContext(Node*, EventTarget* current_target); NodeEventContext(Node&, EventTarget& current_target);
void Trace(blink::Visitor*); void Trace(blink::Visitor*);
Node* GetNode() const { return node_.Get(); } Node* GetNode() const { return node_.Get(); }
......
...@@ -54,10 +54,10 @@ class CORE_EXPORT TreeScopeEventContext final ...@@ -54,10 +54,10 @@ class CORE_EXPORT TreeScopeEventContext final
ContainerNode& RootNode() const { return tree_scope_->RootNode(); } ContainerNode& RootNode() const { return tree_scope_->RootNode(); }
EventTarget* Target() const { return target_.Get(); } EventTarget* Target() const { return target_.Get(); }
void SetTarget(EventTarget*); void SetTarget(EventTarget&);
EventTarget* RelatedTarget() const { return related_target_.Get(); } EventTarget* RelatedTarget() const { return related_target_.Get(); }
void SetRelatedTarget(EventTarget*); void SetRelatedTarget(EventTarget&);
TouchEventContext* GetTouchEventContext() const { TouchEventContext* GetTouchEventContext() const {
return touch_event_context_.Get(); return touch_event_context_.Get();
...@@ -118,16 +118,14 @@ inline void TreeScopeEventContext::CheckReachableNode(EventTarget& target) { ...@@ -118,16 +118,14 @@ inline void TreeScopeEventContext::CheckReachableNode(EventTarget& target) {
inline void TreeScopeEventContext::CheckReachableNode(EventTarget&) {} inline void TreeScopeEventContext::CheckReachableNode(EventTarget&) {}
#endif #endif
inline void TreeScopeEventContext::SetTarget(EventTarget* target) { inline void TreeScopeEventContext::SetTarget(EventTarget& target) {
DCHECK(target); CheckReachableNode(target);
CheckReachableNode(*target);
target_ = target; target_ = target;
} }
inline void TreeScopeEventContext::SetRelatedTarget( inline void TreeScopeEventContext::SetRelatedTarget(
EventTarget* related_target) { EventTarget& related_target) {
DCHECK(related_target); CheckReachableNode(related_target);
CheckReachableNode(*related_target);
related_target_ = related_target; related_target_ = related_target;
} }
......
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