Chromium Code Reviews| Index: third_party/WebKit/Source/core/dom/DocumentUserGestureToken.h |
| diff --git a/third_party/WebKit/Source/core/dom/DocumentUserGestureToken.h b/third_party/WebKit/Source/core/dom/DocumentUserGestureToken.h |
| index d4cd560b21112be05f6d9490d75fc9094af9825b..f8b99021f02be08cea177f8e3de69cf2cc45670c 100644 |
| --- a/third_party/WebKit/Source/core/dom/DocumentUserGestureToken.h |
| +++ b/third_party/WebKit/Source/core/dom/DocumentUserGestureToken.h |
| @@ -7,6 +7,7 @@ |
| #include "core/dom/Document.h" |
| #include "core/frame/LocalFrame.h" |
| +#include "core/loader/FrameLoaderClient.h" |
| #include "platform/UserGestureIndicator.h" |
| namespace blink { |
| @@ -36,12 +37,10 @@ class DocumentUserGestureToken final : public UserGestureToken { |
| DocumentUserGestureToken(Status status) : UserGestureToken(status) {} |
| static void setHasReceivedUserGesture(Document* document) { |
| - if (!document || document->hasReceivedUserGesture()) |
| - return; |
| - document->setHasReceivedUserGesture(); |
| - for (Frame* frame = document->frame()->tree().parent(); frame; |
| - frame = frame->tree().parent()) { |
| - frame->setDocumentHasReceivedUserGesture(); |
| + if (document && document->frame() && |
| + !document->frame()->hasReceivedUserGesture()) { |
| + document->frame()->setDocumentHasReceivedUserGesture(); |
|
Nate Chapin
2017/01/18 20:21:37
Doing this here rather than in FrameLoaderClientIm
|
| + document->frame()->loader().client()->setHasReceivedUserGesture(); |
| } |
| } |
| }; |