toImpl(keyValueStorageManagerRef)->getKeyValueStorageUsageForOrigin(WebStorageInt64Callback::create(context, callback), toImpl(originRef));
#endif
}
+
+void WKKeyValueStorageManagerSyncKeyValueStorage(WKKeyValueStorageManagerRef keyValueStorageManagerRef)
+{
+#if ENABLE(TIZEN_WEB_STORAGE)
+ toImpl(keyValueStorageManagerRef)->syncLocalStorage();
+#endif
+}
WK_EXPORT void WKKeyValueStorageManagerGetKeyValueStoragePath(WKKeyValueStorageManagerRef keyValueStorageManager, void* context, WKKeyValueStorageManagerGetKeyValueStoragePathFunction function);
typedef void (*WKKeyValueStorageManagerGetKeyValueStorageUsageForOriginFunction)(WKInt64Ref, WKErrorRef, void*);
WK_EXPORT void WKKeyValueStorageManagerGetKeyValueStorageUsageForOrigin(WKKeyValueStorageManagerRef keyValueStorageManager, void* context, WKKeyValueStorageManagerGetKeyValueStorageUsageForOriginFunction function, WKSecurityOriginRef origin);
+WK_EXPORT void WKKeyValueStorageManagerSyncKeyValueStorage(WKKeyValueStorageManagerRef keyValueStorageManager);
// #endif
#ifdef __cplusplus
}
Ewk_Context::~Ewk_Context()
{
ASSERT(contextMap().get(m_context.get()) == this);
+
+#if ENABLE(TIZEN_WEB_STORAGE)
+ syncLocalStorage();
+#endif
contextMap().remove(m_context.get());
#if ENABLE(TIZEN_CACHE_DUMP_SYNC)
dumpCache();
toImpl(cacheManager)->dumpCache();
}
#endif
+
+#if ENABLE(TIZEN_WEB_STORAGE)
+/**
+ * @internal
+ * Request WebProcess to sync local storage.
+ *
+ * This sends message to WebProcess to sync local storage.
+ */
+void Ewk_Context::syncLocalStorage()
+{
+ WKKeyValueStorageManagerRef storageManager = WKContextGetKeyValueStorageManager(wkContext());
+ WKKeyValueStorageManagerSyncKeyValueStorage(storageManager);
+}
+#endif
#endif
Ewk_Context* ewk_context_default_get()
#if ENABLE(TIZEN_CACHE_DUMP_SYNC)
void dumpCache();
#endif
+#if ENABLE(TIZEN_WEB_STORAGE)
+ void syncLocalStorage();
+#endif
#endif // #if OS(TIZEN)
private:
callback->performCallbackWithReturnValue(int64Object.release().leakRef());
}
#endif
+
+void WebKeyValueStorageManagerProxy::syncLocalStorage()
+{
+ m_webContext->sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebKeyValueStorageManager::SyncLocalStorage());
+}
#endif
} // namespace WebKit
#if ENABLE(TIZEN_WEB_STORAGE)
void getKeyValueStoragePath(PassRefPtr<WebStorageStringCallback>);
+ void syncLocalStorage();
#if ENABLE(TIZEN_WEBKIT2_NUMBER_TYPE_SUPPORT)
void getKeyValueStorageUsageForOrigin(PassRefPtr<WebStorageInt64Callback>, WebSecurityOrigin*);
#endif
didReceiveWebKeyValueStorageManagerMessage(connection, messageID, arguments);
}
+#if ENABLE(TIZEN_WEB_STORAGE)
+void WebKeyValueStorageManager::didReceiveSyncMessage(CoreIPC::Connection* connection, CoreIPC::MessageID messageID, CoreIPC::ArgumentDecoder* arguments, OwnPtr<CoreIPC::ArgumentEncoder>& reply)
+{
+ didReceiveSyncWebKeyValueStorageManagerMessage(connection, messageID, arguments, reply);
+}
+#endif
+
static void keyValueStorageOriginIdentifiers(Vector<SecurityOriginData>& identifiers)
{
ASSERT(identifiers.isEmpty());
WebProcess::shared().connection()->send(Messages::WebKeyValueStorageManagerProxy::DidGetKeyValueStorageUsageForOrigin(StorageTracker::tracker().diskUsageForOrigin(origin.get()), callbackID), 0);
#endif
}
+
+void WebKeyValueStorageManager::syncLocalStorage()
+{
+ StorageTracker::tracker().syncLocalStorage();
+}
#endif
} // namespace WebKit
#include <wtf/text/WTFString.h>
namespace CoreIPC {
+//#if ENABLE(TIZEN_WEB_STORAGE)
+ class ArgumentEncoder;
+//#endif
class ArgumentDecoder;
class Connection;
class MessageID;
static WebKeyValueStorageManager& shared();
void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
+#if ENABLE(TIZEN_WEB_STORAGE)
+ void didReceiveSyncMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*, OwnPtr<CoreIPC::ArgumentEncoder>&);
+#endif
private:
WebKeyValueStorageManager();
#if ENABLE(TIZEN_WEB_STORAGE)
void getKeyValueStoragePath(uint64_t callbackID);
void getKeyValueStorageUsageForOrigin(uint64_t callbackID, const SecurityOriginData&);
+ void syncLocalStorage();
#endif
// WebCore::StorageTrackerClient
virtual void didFinishLoadingOrigins() OVERRIDE;
void didReceiveWebKeyValueStorageManagerMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
+ //#if ENABLE(TIZEN_WEB_STORAGE)
+ void didReceiveSyncWebKeyValueStorageManagerMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*, OwnPtr<CoreIPC::ArgumentEncoder>&);
+ //#endif
Vector<uint64_t> m_originsRequestCallbackIDs;
bool m_originsLoaded;
#if ENABLE(TIZEN_WEB_STORAGE)
void GetKeyValueStoragePath(uint64_t callbackID)
void GetKeyValueStorageUsageForOrigin(uint64_t callbackID, WebKit::SecurityOriginData originIdentifier)
+ void SyncLocalStorage() -> ()
#endif
}
}
#endif
+#if ENABLE(TIZEN_WEB_STORAGE)
+ if (messageID.is<CoreIPC::MessageClassWebKeyValueStorageManager>()) {
+ WebKeyValueStorageManager::shared().didReceiveSyncMessage(connection, messageID, arguments, reply);
+ return;
+ }
+#endif
+
uint64_t pageID = arguments->destinationID();
if (!pageID)
return;