c098d4fc0b308d25b1ab3094293a25bacf3ca0f5
[platform/framework/web/crosswalk-tizen.git] /
1 // Copyright 2014 Samsung Electronics. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef ewk_notification_private_h
6 #define ewk_notification_private_h
7
8 #include <Evas.h>
9 #include <string>
10
11 #include "base/callback.h"
12 #include "base/macros.h"
13 #include "private/ewk_security_origin_private.h"
14 #include "third_party/skia/include/core/SkBitmap.h"
15 #include "third_party/WebKit/public/platform/modules/permissions/permission_status.mojom.h"
16
17 class GURL;
18
19 struct Ewk_Notification {
20  public:
21   Ewk_Notification(const std::string& body,
22                    const std::string& replaceID,
23                    const std::string& title,
24                    const SkBitmap& icon,
25                    bool silent,
26                    uint64_t notificationID,
27                    const GURL& securityOrigin);
28   ~Ewk_Notification();
29
30   const char* GetBody() const;
31   const char* GetReplaceId() const;
32   const char* GetTitle() const;
33   bool IsSilent() const;
34   Evas_Object* GetIcon(Evas* evas) const;
35   int GetID() const;
36   const _Ewk_Security_Origin* GetSecurityOrigin() const;
37   bool SaveAsPng(const char* path) const;
38
39  private:
40   std::string body_;
41   SkBitmap icon_;
42   std::string replaceID_;
43   std::string title_;
44   bool silent_;
45   uint64_t notificationID_;
46   std::unique_ptr<_Ewk_Security_Origin> origin_;
47
48   DISALLOW_COPY_AND_ASSIGN(Ewk_Notification);
49
50 };
51
52 struct Ewk_Notification_Permission_Request {
53  public:
54   Ewk_Notification_Permission_Request(
55       Evas_Object* webview,
56       const base::Callback<void(blink::mojom::PermissionStatus)>& callback,
57       const GURL& source_origin);
58   ~Ewk_Notification_Permission_Request();
59
60   Evas_Object* GetWebviewEvasObject() const;
61   const _Ewk_Security_Origin* GetSecurityOrigin() const;
62   bool IsDecided() const;
63   bool IsSuspended() const;
64   bool SetSuspend(bool suspend) const;
65   bool Reply(bool allow);
66
67  private:
68   Evas_Object* webview_;
69   std::unique_ptr<_Ewk_Security_Origin> origin_;
70   base::Callback<void(blink::mojom::PermissionStatus)> callback_;
71   bool decided_;
72   mutable bool suspended_;
73
74   DISALLOW_COPY_AND_ASSIGN(Ewk_Notification_Permission_Request);
75 };
76
77
78 #endif // ewk_notification_private_h