ce64957d8563f47d1512e8fe0bf8f127ff73a864
[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 #include <plugins-ipc-message/ipc_message_support.h>
28
29 namespace DeviceAPI {
30 namespace WebSetting {
31
32 WebSettingManager::WebSettingManager()
33 {
34 }
35
36 WebSettingManager::~WebSettingManager()
37 {
38 }
39
40 void WebSettingManager::onAsyncUAStringReplyCallback(unsigned int num, void* user_data, const char* result) 
41 {    
42     WebSettingManager* object = static_cast<WebSettingManager*>(user_data);    
43
44     if (strncmp(result,"success", strlen("success")) == 0) {
45         //invoke success callback here.
46         if (object->mSetUserAgentCallbacks != NULL ){
47                     SLoggerI("[WebSettingManager::onAsyncReplyCallback] onsuccess start. ");
48             object->mSetUserAgentCallbacks->invokeCallback("onsuccess", NULL);
49                     SLoggerI("[WebSettingManager::onAsyncReplyCallback] onsuccess end. ");
50             }
51         else {
52                     SLoggerI("[WebSettingManager::onAsyncReplyCallback] object->mSetUserAgentCallbacks is NULL so no callback can be invoked." << __LINE__);;
53         }
54     }
55     else {
56         if (object->mSetUserAgentCallbacks != NULL ) {
57             SLoggerI("[WebSettingManager::onAsyncReplyCallback] onerror start. ");                      
58             UnknownException error("Unknown");
59             JSObjectRef errorObj = JSWebAPIErrorFactory::makeErrorObject(object->mSetUserAgentCallbacks->getContext(), error);
60                         object->mSetUserAgentCallbacks->invokeCallback("onerror", errorObj);
61                         SLoggerI("[WebSettingManager::onAsyncReplyCallback] onerror end. ");                    
62         }
63         else {
64             SLoggerI("[WebSettingManager::onAsyncReplyCallback] object->mSetUserAgentCallbacks is NULL so no callback can be invoked." << __LINE__);;
65         }
66     }
67 }
68
69 void WebSettingManager::onAsyncReplyRemoveAllCookiesCallback(unsigned int num, void* user_data, const char* result) 
70 {    
71     WebSettingManager* object = static_cast<WebSettingManager*>(user_data);    
72
73     if (strncmp(result,"success", strlen("success")) == 0) {
74     //invoke success callback here.
75         if (object->mRemoveAllCookiesCallbacks != NULL ) {
76             SLoggerI("[WebSettingManager::onAsyncReplyCallback] onsuccess start. ");
77             object->mRemoveAllCookiesCallbacks->invokeCallback("onsuccess", NULL);
78             SLoggerI("[WebSettingManager::onAsyncReplyCallback] onsuccess end. ");
79         }
80         else {
81             SLoggerI("[WebSettingManager::onAsyncReplyCallback] object->mSetUserAgentCallbacks is NULL so no callback can be invoked." << __LINE__);;
82         }
83     }
84     else {
85         if (object->mRemoveAllCookiesCallbacks != NULL) {
86             SLoggerI("[WebSettingManager::onAsyncReplyCallback] onerror start. ");                      
87             UnknownException error("Unknown");
88             JSObjectRef errorObj = JSWebAPIErrorFactory::makeErrorObject(object->mSetUserAgentCallbacks->getContext(), error);
89                         object->mRemoveAllCookiesCallbacks->invokeCallback("onerror", errorObj);
90                         SLoggerI("[WebSettingManager::onAsyncReplyCallback] onerror end. ");                    
91         }
92         else {
93                 SLoggerI("[WebSettingManager::onAsyncReplyCallback] object->mSetUserAgentCallbacks is NULL so no callback can be invoked." << __LINE__);;
94             }
95     }
96 }
97
98 void WebSettingManager::setUserAgentString(std::string userAgent, MultiCallbackUserDataPtr callbacks)
99 {
100     SLoggerI("WebSetting:setUserAgentString: " << userAgent);
101     mSetUserAgentCallbacks = callbacks;
102     IPCMessageSupport::sendAsyncMessageToUiProcess(IPCMessageSupport::TIZEN_CHANGE_USERAGENT, userAgent.c_str(), WebSettingManager::onAsyncUAStringReplyCallback, this);
103     //IPCMessageSupport::sendAsyncMessageToUiProcess("tizen://changeUA", "Mozilla/5.0 ~", WebSettingManager::onAsyncReplyCallback, this);
104     SLoggerI("WebSetting:setUserAgentString done");
105 }
106
107 void WebSettingManager::removeAllCookies(MultiCallbackUserDataPtr callbacks)
108 {
109     SLoggerI("WebSetting:removeAllCookies: ");
110     mRemoveAllCookiesCallbacks = callbacks;
111     IPCMessageSupport::sendAsyncMessageToUiProcess(IPCMessageSupport::TIZEN_DELETE_ALL_COOKIES, NULL, WebSettingManager::onAsyncReplyRemoveAllCookiesCallback, this);
112     SLoggerI("WebSetting:removeAllCookies done");
113 } // WebSetting
114
115 } // DeviceAPI
116 }