Index: Source/modules/push_messaging/PushPermissionRequestCallback.h |
diff --git a/Source/modules/push_messaging/PushPermissionRequestCallback.h b/Source/modules/push_messaging/PushPermissionRequestCallback.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..8c82a53f26d398cd401a099c6ca2b682642022f2 |
--- /dev/null |
+++ b/Source/modules/push_messaging/PushPermissionRequestCallback.h |
@@ -0,0 +1,43 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef PushPermissionRequestCallback_h |
+#define PushPermissionRequestCallback_h |
+ |
+#include "platform/heap/Handle.h" |
+#include "public/platform/WebCallback.h" |
+#include "wtf/Noncopyable.h" |
+#include "wtf/PassRefPtr.h" |
+#include "wtf/RefPtr.h" |
+ |
+namespace blink { |
+ |
+class PushManager; |
+class ScriptPromiseResolver; |
+class WebPushClient; |
+class WebServiceWorkerProvider; |
+ |
+class PushPermissionRequestCallback final : public WebCallback { |
+ WTF_MAKE_NONCOPYABLE(PushPermissionRequestCallback); |
+ |
+public: |
+ // Since |PushManager| is oilpan garbage collected this will keep it alive. |
+ // Does not take ownership of |WebPushClient|. |
+ // Since |ScriptPromiseResolver| is ref counted this will keep it alive. |
+ // Does not take ownership of |WebServiceWorkerProvider|. |
+ PushPermissionRequestCallback(PushManager*, WebPushClient*, PassRefPtr<ScriptPromiseResolver>, WebServiceWorkerProvider*); |
+ ~PushPermissionRequestCallback() override; |
+ |
+ void run() override; |
+ |
+private: |
+ Persistent<PushManager> m_manager; |
+ WebPushClient* m_client; |
+ RefPtr<ScriptPromiseResolver> m_resolver; |
+ WebServiceWorkerProvider* m_serviceWorkerProvider; |
+}; |
+ |
+} // namespace blink |
+ |
+#endif // PushPermissionRequestCallback_h |