Update change log and spec for wrt-plugins-tizen_0.4.44
[framework/web/wrt-plugins-tizen.git] / src / WebSetting / WebSettingManager.cpp
1 //
2 // Tizen Web Device API
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 //
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 // http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17
18 #include <PlatformException.h>
19 #include <Logger.h>
20 #include "WebSettingManager.h"
21 #include <glib.h>
22 #include <Ecore.h>
23 #include <JSUtil.h>
24 #include <JSWebAPIError.h>
25 #include <PlatformException.h>
26
27
28 namespace DeviceAPI {
29 namespace WebSetting {
30
31 WebSettingManager::WebSettingManager()
32 {
33 }
34
35 WebSettingManager::~WebSettingManager()
36 {
37 }
38
39 static gboolean asyncUserAgentStringResult(void *data)
40 {
41     LoggerD("[asyncUserAgentStringResult] entered in Mainloop");
42
43     WebSettingManager* object = static_cast<WebSettingManager*>(data);
44     if(object == NULL)
45     {
46                 //TBD : JSWebAPIErrorFactory::postException(context, exception, err);                
47         LoggerD("[asyncUserAgentStringResult] User data is NULL");
48         return true;
49     }
50
51     MultiCallbackUserDataPtr callback = (MultiCallbackUserDataPtr)object->mSetUserAgentCallbacks;
52
53         if (callback)
54         {
55             JSContextRef context = callback->getContext();
56             callback->invokeCallback("onsuccess");
57         }
58
59     return false;
60 }
61
62 static gboolean asyncRemoveAllCookiesResult(void *data)
63 {
64     LoggerD("[asyncRemoveAllCookiesResult] entered in Mainloop");
65
66     WebSettingManager* object = static_cast<WebSettingManager*>(data);
67     if(object == NULL)
68     {
69                 //TBD : JSWebAPIErrorFactory::postException(context, exception, err);                
70         LoggerD("[asyncRemoveAllCookiesResult] User data is NULL");
71         return true;
72     }
73
74     MultiCallbackUserDataPtr callback = (MultiCallbackUserDataPtr)object->mRemoveAllCookiesCallbacks;
75         if (callback)
76         {
77         JSContextRef context = callback->getContext();
78             callback->invokeCallback("onsuccess");
79         }
80
81     return false;
82 }
83
84 static void checkSetUserAgentString(void *data, Ecore_Thread *thread)
85 {
86     LoggerD("WebSettingManager::checkUserAgentString");
87     g_idle_add(asyncUserAgentStringResult, data);
88 }
89
90 static void checkRemoveAllCookies(void *data, Ecore_Thread *thread)
91 {
92     LoggerD("WebSettingManager::checkRemoveAllCookies");
93     g_idle_add(asyncRemoveAllCookiesResult, data);
94 }
95
96 void WebSettingManager::setUserAgentString(std::string userAgent, MultiCallbackUserDataPtr callbacks)
97 {
98     LoggerD("WebSetting:setUserAgentString: " << userAgent);
99         mSetUserAgentCallbacks = callbacks;
100     ecore_thread_run(checkSetUserAgentString, NULL, NULL, this);
101     //throw UnknownException("Not Implemented.");
102 }
103
104 void WebSettingManager::removeAllCookies(MultiCallbackUserDataPtr callbacks)
105 {
106     LoggerD("WebSetting:removeAllCookies: ");
107         mRemoveAllCookiesCallbacks = callbacks;
108     ecore_thread_run(checkRemoveAllCookies, NULL, NULL, this);  
109     //throw UnknownException("Not Implemented.");
110 }
111
112 } // WebSetting
113 } // DeviceAPI