}
}
-void dispatchStorageEvent(JSContextRef context, const std::string key, const std::string oldValue, const std::string newValue, const std::string url)
+void dispatchStorageEvent(JSContextRef context,
+ const DPL::Optional<std::string>& key,
+ const DPL::Optional<std::string>& oldValue,
+ const DPL::Optional<std::string>& newValue,
+ const std::string& url)
{
- LogDebug("dispatchStorageEvent(" << context << ", " << key << ", " << oldValue << ", " << newValue << ", " << url << ")");
+ LogDebug("dispatchStorageEvent(" <<
+ context << ", " <<
+ (key.IsNull() ? "null" : *key) << ", " <<
+ (oldValue.IsNull() ? "null" : *oldValue) << ", " <<
+ (newValue.IsNull() ? "null" : *newValue) << ", " <<
+ url << ")");
if (context != NULL)
{
std::stringstream script;
- script << "var __event = document.createEvent(\"CustomEvent\");\n"
- << "__event.initCustomEvent(\"storage\", true, true);\n"
- << "__event.key = \"" << key << "\";\n"
- << "__event.oldValue = \"" << oldValue << "\";\n"
- << "__event.newValue = \"" << newValue << "\";\n"
- << "__event.url = \"" << url << "\";\n"
- << "__event.storageArea = widget.preferences;\n"
- << "document.dispatchEvent(__event);\n"
- << "\n"
- << "for (var i=0; i < window.frames.length; i++)\n"
+ auto toJSValue =
+ [](const DPL::Optional<std::string>& value) -> std::string
+ {
+ return (value.IsNull() ? "null" : "\"" + *value + "\"");
+ };
+
+ script << "var __event = document.createEvent(\"CustomEvent\");"
+ << "__event.initCustomEvent(\"storage\", true, true);"
+ << "__event.key = " << toJSValue(key) << ";"
+ << "__event.oldValue = " << toJSValue(oldValue) << ";"
+ << "__event.newValue = " << toJSValue(newValue) << ";"
+ << "__event.url = \"" << url << "\";"
+ << "__event.storageArea = widget.preferences;"
+ << "document.dispatchEvent(__event);"
+ << "for (var i=0; i < window.frames.length; i++)"
<< "{ window.frames[i].document.dispatchEvent(__event); }";
#define _DISPATCH_EVENT_SUPPORT_H_
#include <string>
+#include <dpl/optional.h>
#include <dpl/log/log.h>
#include <EWebKit2.h>
#include <JavaScriptCore/JavaScript.h>
void dispatchAppServiceEvent(JSContextRef context, const float scale, const std::string bundle);
void dispatchSoftKeyboardChangeEvent(JSContextRef context, const std::string state, const int width, const int height);
-void dispatchStorageEvent(JSContextRef context, const std::string key, const std::string oldValue, const std::string newValue, const std::string url);
+void dispatchStorageEvent(JSContextRef context,
+ const DPL::Optional<std::string>& key,
+ const DPL::Optional<std::string>& oldValue,
+ const DPL::Optional<std::string>& newValue,
+ const std::string& url);
void dispatchHwKeyEvent(Evas_Object* ewkView, const std::string key);
}
#endif //_DISPATCH_EVENT_SUPPORT_H_
DPL::Optional<std::string> newValue = getIStorage(thisObject)->getValue(key);
JSContextRef g_context = JSContextGetGlobalContext(context);
- std::string oldValueStr = "";
- std::string newValueStr = "";
- if (!!oldValue) { oldValueStr = *oldValue; }
- if (!!newValue) { newValueStr = *newValue; }
-
- DispatchEventSupport::dispatchStorageEvent(g_context, key, oldValueStr, newValueStr, "");
+ DispatchEventSupport::dispatchStorageEvent(g_context, key, oldValue, newValue, "");
LogDebug("end");
return JSValueMakeNull(context);
DPL::Optional<std::string> newValue = getIStorage(thisObject)->getValue(key);
JSContextRef g_context = JSContextGetGlobalContext(context);
- std::string oldValueStr = "";
- std::string newValueStr = "";
-
- if (!!oldValue) { oldValueStr = *oldValue; }
- if (!!newValue) { newValueStr = *newValue; }
- DispatchEventSupport::dispatchStorageEvent(g_context, key, oldValueStr, newValueStr, "");
+ DispatchEventSupport::dispatchStorageEvent(g_context, key, oldValue, newValue, "");
LogDebug("end");
JSContextRef g_context = JSContextGetGlobalContext(context);
- DispatchEventSupport::dispatchStorageEvent(g_context, "", "", "", "");
+ const auto& null = DPL::Optional<std::string>::Null;
+
+ DispatchEventSupport::dispatchStorageEvent(g_context, null, null, null, "");
LogDebug("end");