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>
26 #include <GlobalContextManager.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 LoggerD("Constructor of WebSettingManager...");
42 WebSettingManager::~WebSettingManager()
44 LoggerD("Destructor of WebSettingManager...");
47 WebSettingManager* WebSettingManager::getInstance()
49 static WebSettingManager instance;
53 void WebSettingManager::onAsyncUAStringReplyCallback(unsigned int num, void* user_data, const char* result)
55 MultiCallbackUserData* multiPointer = static_cast<MultiCallbackUserData *>(user_data);
56 if (multiPointer != NULL)
58 CHECK_CURRENT_CONTEXT_ALIVE(multiPointer->getContext());
60 unsigned int successStrLength = strlen("success");
61 if ((strncmp(result,"success", successStrLength) == 0) && (strlen(result) == successStrLength))
63 multiPointer->invokeCallback("onsuccess", NULL);
67 UnknownException error("Unknown");
68 JSObjectRef errorObj = JSWebAPIErrorFactory::makeErrorObject(multiPointer->getContext(), error);
69 multiPointer->invokeCallback("onerror", errorObj);
71 WebSettingManager::mUserAgentCallbacks.remove(multiPointer);
76 LoggerD("MultiCallbackUserData is NULL.");;
80 void WebSettingManager::onAsyncReplyRemoveAllCookiesCallback(unsigned int num, void* user_data, const char* result)
82 MultiCallbackUserData* multiPointer = static_cast<MultiCallbackUserData *>(user_data);
83 if (multiPointer != NULL)
85 CHECK_CURRENT_CONTEXT_ALIVE(multiPointer->getContext());
86 unsigned int successStrLength = strlen("success");
87 if ((strncmp(result,"success", successStrLength)== 0) && (strlen(result) == successStrLength))
89 multiPointer->invokeCallback("onsuccess", NULL);
93 UnknownException error("Unknown");
94 JSObjectRef errorObj = JSWebAPIErrorFactory::makeErrorObject(multiPointer->getContext(), error);
95 multiPointer->invokeCallback("onerror", errorObj);
97 WebSettingManager::mDeleteAllCookiesCallbacks.remove(multiPointer);
102 LoggerD("MultiCallbackUserData is NULL." );;
106 void WebSettingManager::setUserAgentString(std::string userAgent, MultiCallbackUserData* callbacks)
108 WebSettingManager::mUserAgentCallbacks.push_back(callbacks);
109 IPCMessageSupport::sendAsyncMessageToUiProcess(IPCMessageSupport::TIZEN_CHANGE_USERAGENT, userAgent.c_str(), WebSettingManager::onAsyncUAStringReplyCallback, callbacks);
112 void WebSettingManager::removeAllCookies(MultiCallbackUserData* callbacks)
114 WebSettingManager::mDeleteAllCookiesCallbacks.push_back(callbacks);
115 IPCMessageSupport::sendAsyncMessageToUiProcess(IPCMessageSupport::TIZEN_DELETE_ALL_COOKIES, NULL, WebSettingManager::onAsyncReplyRemoveAllCookiesCallback, callbacks);