Fix invalid licenses
[platform/framework/web/crosswalk-tizen.git] / src / runtime / web_application.h
1 /*
2  * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  *    Licensed under the Apache License, Version 2.0 (the "License");
5  *    you may not use this file except in compliance with the License.
6  *    You may obtain a copy of the License at
7  *
8  *        http://www.apache.org/licenses/LICENSE-2.0
9  *
10  *    Unless required by applicable law or agreed to in writing, software
11  *    distributed under the License is distributed on an "AS IS" BASIS,
12  *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  *    See the License for the specific language governing permissions and
14  *    limitations under the License.
15  */
16
17
18 #ifndef WRT_RUNTIME_WEB_APPLICATION_H_
19 #define WRT_RUNTIME_WEB_APPLICATION_H_
20
21 #include <string>
22 #include <list>
23 #include <memory>
24 #include <functional>
25
26 #include "common/dbus_server.h"
27 #include "runtime/web_view.h"
28
29 class Ewk_Context;
30
31 namespace wrt {
32 class NativeWindow;
33 class AppControl;
34 class ApplicationData;
35 class LocaleManager;
36 class ResourceManager;
37
38 class WebApplication : public WebView::EventListener {
39  public:
40   WebApplication(NativeWindow* window,
41                  std::unique_ptr<ApplicationData> app_data);
42   virtual ~WebApplication();
43
44   void AppControl(std::unique_ptr<wrt::AppControl> appcontrol);
45   void Launch(std::unique_ptr<wrt::AppControl> appcontrol);
46   void Resume();
47   void Suspend();
48
49   std::string data_path() const { return app_data_path_; }
50   void set_terminator(std::function<void(void)> terminator)
51       { terminator_ = terminator; }
52   bool launched() const { return launched_; }
53
54   virtual void OnCreatedNewWebView(WebView* view, WebView* new_view);
55   virtual void OnClosedWebView(WebView * view);
56   virtual void OnReceivedWrtMessage(WebView* view,
57                                     Ewk_IPC_Wrt_Message_Data* msg);
58   virtual void OnOrientationLock(WebView* view,
59                                  bool lock,
60                                  int preferred_rotation);
61   virtual void OnHardwareKey(WebView* view, const std::string& keyname);
62   virtual void OnConsoleMessage(const std::string& msg, int level);
63
64   virtual void OnLoadStart(WebView* view);
65   virtual void OnLoadFinished(WebView* view);
66   virtual void OnRendered(WebView* view);
67   virtual void OnLanguageChanged();
68   virtual void OnLowMemory();
69   virtual bool OnContextMenuDisabled(WebView* view);
70   virtual bool OnDidNavigation(WebView* view, const std::string& url);
71   virtual void OnNotificationPermissionRequest(
72       WebView* view,
73       const std::string& url,
74       std::function<void(bool)> result_handler);
75   virtual void OnGeolocationPermissionRequest(
76       WebView* view,
77       const std::string& url,
78       std::function<void(bool)> result_handler);
79   virtual void OnQuotaExceed(
80       WebView* view,
81       const std::string& url,
82       std::function<void(bool)> result_handler);
83   virtual void OnAuthenticationRequest(
84       WebView* view,
85       const std::string& url,
86       const std::string& message,
87       std::function<void(bool submit,
88                          const std::string& id,
89                          const std::string& password)
90                    > result_handler);
91   virtual void OnCertificateAllowRequest(
92       WebView* view,
93       const std::string& url,
94       const std::string& pem,
95       std::function<void(bool allow)> result_handler);
96
97  private:
98   bool Initialize();
99
100   void ClearViewStack();
101   void SendAppControlEvent();
102   void LaunchInspector(wrt::AppControl* appcontrol);
103   void SetupWebView(WebView* view);
104
105   void HandleDBusMethod(GDBusConnection* connection,
106                         const std::string& method_name,
107                         GVariant* parameters,
108                         GDBusMethodInvocation* invocation);
109
110   bool launched_;
111   bool debug_mode_;
112   Ewk_Context* ewk_context_;
113   NativeWindow* window_;
114   DBusServer dbus_server_;
115   std::string appid_;
116   std::string app_data_path_;
117   std::string app_uuid_;
118   std::list<WebView*> view_stack_;
119   std::unique_ptr<LocaleManager> locale_manager_;
120   std::unique_ptr<ApplicationData> app_data_;
121   std::unique_ptr<ResourceManager> resource_manager_;
122   std::unique_ptr<wrt::AppControl> received_appcontrol_;
123   std::function<void(void)> terminator_;
124 };
125
126 }  // namespace wrt
127
128 #endif  // WRT_RUNTIME_WEB_APPLICATION_H_