diff options
Diffstat (limited to 'Source/WebKit2/UIProcess/API/C/WKIntentData.cpp')
-rw-r--r-- | Source/WebKit2/UIProcess/API/C/WKIntentData.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/Source/WebKit2/UIProcess/API/C/WKIntentData.cpp b/Source/WebKit2/UIProcess/API/C/WKIntentData.cpp index a42f530ac..7a92db54c 100644 --- a/Source/WebKit2/UIProcess/API/C/WKIntentData.cpp +++ b/Source/WebKit2/UIProcess/API/C/WKIntentData.cpp @@ -29,6 +29,8 @@ #include "ImmutableArray.h" #include "ImmutableDictionary.h" #include "WKAPICast.h" +#include "WKDictionary.h" +#include "WKString.h" #if ENABLE(WEB_INTENTS) #include "WebIntentData.h" @@ -45,6 +47,27 @@ WKTypeID WKIntentDataGetTypeID() #endif } +WKIntentDataRef WKIntentDataCreate(WKDictionaryRef initDictionaryRef) +{ +#if ENABLE(WEB_INTENTS) + IntentData intentData; + WKStringRef action = static_cast<WKStringRef>(WKDictionaryGetItemForKey(initDictionaryRef, WKStringCreateWithUTF8CString("action"))); + ASSERT(action); + intentData.action = toImpl(action)->string(); + WKStringRef type = static_cast<WKStringRef>(WKDictionaryGetItemForKey(initDictionaryRef, WKStringCreateWithUTF8CString("type"))); + ASSERT(type); + intentData.type = toImpl(type)->string(); + WKSerializedScriptValueRef data = static_cast<WKSerializedScriptValueRef>(WKDictionaryGetItemForKey(initDictionaryRef, WKStringCreateWithUTF8CString("data"))); + if (data) + intentData.data = toImpl(data)->dataReference().vector(); + + RefPtr<WebIntentData> webIntentData = WebIntentData::create(intentData); + return toAPI(webIntentData.release().leakRef()); +#else + return 0; +#endif +} + WKStringRef WKIntentDataCopyAction(WKIntentDataRef intentRef) { #if ENABLE(WEB_INTENTS) |