2 // Tizen Web Device API
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
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
9 // http://www.apache.org/licenses/LICENSE-2.0
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.
18 #include <PlatformException.h>
20 #include "WebSettingManager.h"
24 #include <JSWebAPIError.h>
25 #include <PlatformException.h>
27 #include <plugins-ipc-message/ipc_message_support.h>
34 std::list<Common::MultiCallbackUserData *> WebSettingManager::mUserAgentCallbacks;
35 std::list<Common::MultiCallbackUserData *> WebSettingManager::mDeleteAllCookiesCallbacks;
37 WebSettingManager::WebSettingManager()
39 SLoggerI("Constructor of WebSettingManager...");
42 WebSettingManager::~WebSettingManager()
44 SLoggerI("Desstructor of WebSettingManager...");
47 WebSettingManager* WebSettingManager::getInstance()
49 SLoggerI("Getting instance of WebSettingManager...");
50 static WebSettingManager instance;
54 void WebSettingManager::onAsyncUAStringReplyCallback(unsigned int num, void* user_data, const char* result)
56 MultiCallbackUserData* multiPointer = static_cast<MultiCallbackUserData *>(user_data);
57 if (multiPointer != NULL)
59 unsigned int successStrLength = strlen("success");
60 if ((strncmp(result,"success", successStrLength) == 0) && (strlen(result) == successStrLength))
62 multiPointer->invokeCallback("onsuccess", NULL);
66 UnknownException error("Unknown");
67 JSObjectRef errorObj = JSWebAPIErrorFactory::makeErrorObject(multiPointer->getContext(), error);
68 multiPointer->invokeCallback("onerror", errorObj);
70 WebSettingManager::mUserAgentCallbacks.remove(multiPointer);
75 SLoggerI("[WebSettingManager::onAsyncUAStringReplyCallback] Warning. MultiCallbackUserData is NULL." << __LINE__);;
79 void WebSettingManager::onAsyncReplyRemoveAllCookiesCallback(unsigned int num, void* user_data, const char* result)
81 MultiCallbackUserData* multiPointer = static_cast<MultiCallbackUserData *>(user_data);
82 if (multiPointer != NULL)
84 unsigned int successStrLength = strlen("success");
85 if ((strncmp(result,"success", successStrLength)== 0) && (strlen(result) == successStrLength))
87 multiPointer->invokeCallback("onsuccess", NULL);
91 UnknownException error("Unknown");
92 JSObjectRef errorObj = JSWebAPIErrorFactory::makeErrorObject(multiPointer->getContext(), error);
93 multiPointer->invokeCallback("onerror", errorObj);
95 WebSettingManager::mDeleteAllCookiesCallbacks.remove(multiPointer);
100 SLoggerI("[WebSettingManager::onAsyncReplyRemoveAllCookiesCallback] Warning. MultiCallbackUserData is NULL." << __LINE__);;
104 void WebSettingManager::setUserAgentString(std::string userAgent, MultiCallbackUserData* callbacks)
106 SLoggerI("WebSetting:setUserAgentString: " << userAgent);
107 WebSettingManager::mUserAgentCallbacks.push_back(callbacks);
108 IPCMessageSupport::sendAsyncMessageToUiProcess(IPCMessageSupport::TIZEN_CHANGE_USERAGENT, userAgent.c_str(), WebSettingManager::onAsyncUAStringReplyCallback, callbacks);
111 void WebSettingManager::removeAllCookies(MultiCallbackUserData* callbacks)
113 SLoggerI("WebSetting:removeAllCookies: ");
114 WebSettingManager::mDeleteAllCookiesCallbacks.push_back(callbacks);
115 IPCMessageSupport::sendAsyncMessageToUiProcess(IPCMessageSupport::TIZEN_DELETE_ALL_COOKIES, NULL, WebSettingManager::onAsyncReplyRemoveAllCookiesCallback, callbacks);