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

Side by Side Diff: third_party/WebKit/public/web/WebScopedUserGesture.h

Issue 2408333004: Move persistent gesture state to Document, add DocumentUserGestureToken (Closed)
Patch Set: Re-add dropped null check Created 4 years, 1 month 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) 2011 Google Inc. All rights reserved. 2 * Copyright (C) 2011 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 19 matching lines...) Expand all
30 30
31 #ifndef WebScopedUserGesture_h 31 #ifndef WebScopedUserGesture_h
32 #define WebScopedUserGesture_h 32 #define WebScopedUserGesture_h
33 33
34 #include "public/platform/WebCommon.h" 34 #include "public/platform/WebCommon.h"
35 #include <memory> 35 #include <memory>
36 36
37 namespace blink { 37 namespace blink {
38 38
39 class UserGestureIndicator; 39 class UserGestureIndicator;
40 class WebLocalFrame;
40 class WebUserGestureToken; 41 class WebUserGestureToken;
41 42
42 // An instance of this class, while kept alive, will indicate that we are in 43 // An instance of this class, while kept alive, will indicate that we are in
43 // the context of a known user gesture. To use, create one, perform whatever 44 // the context of a known user gesture. To use, create one, perform whatever
44 // actions were done under color of a known user gesture, and then delete it. 45 // actions were done under color of a known user gesture, and then delete it.
45 // Usually this will be done on the stack. 46 // Usually this will be done on the stack.
46 // 47 //
47 // SECURITY WARNING: Do not create several instances of this class for the same 48 // SECURITY WARNING: Do not create several instances of this class for the same
48 // user gesture. Doing so might enable malicious code to work around certain 49 // user gesture. Doing so might enable malicious code to work around certain
49 // restrictions such as opening multiple windows. 50 // restrictions such as opening multiple windows.
50 // Instead, obtain the current WebUserGestureToken from the 51 // Instead, obtain the current WebUserGestureToken from the
51 // WebUserGestureIndicator, and use this token to create a 52 // WebUserGestureIndicator, and use this token to create a
52 // WebScopedUserGesture. If the token was alrady consumed, the new 53 // WebScopedUserGesture. If the token was alrady consumed, the new
53 // WebScopedUserGesture will not indicate that we are in the context of a user 54 // WebScopedUserGesture will not indicate that we are in the context of a user
54 // gesture. 55 // gesture.
55 class WebScopedUserGesture { 56 class WebScopedUserGesture {
56 public: 57 public:
57 BLINK_EXPORT explicit WebScopedUserGesture(const WebUserGestureToken& token); 58 BLINK_EXPORT explicit WebScopedUserGesture(const WebUserGestureToken& token);
58 BLINK_EXPORT WebScopedUserGesture(); 59 BLINK_EXPORT WebScopedUserGesture(WebLocalFrame*);
59 BLINK_EXPORT ~WebScopedUserGesture(); 60 BLINK_EXPORT ~WebScopedUserGesture();
60 61
61 private: 62 private:
62 std::unique_ptr<UserGestureIndicator> m_indicator; 63 std::unique_ptr<UserGestureIndicator> m_indicator;
63 }; 64 };
64 65
65 } // namespace blink 66 } // namespace blink
66 67
67 #endif // WebScopedUserGesture_h 68 #endif // WebScopedUserGesture_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698