55 m_ownedChannels = 0;
56#endif
57}
58
59WebIntent::WebIntent(const WebString& action, const WebString& type, const WebString& data,
60 WebMessagePortChannelArray* ports, const WebVector<WebString>& extrasNames, const WebVector<WebString> extrasValues)
61{
62#if ENABLE(WEB_INTENTS)
63 WebCore::ExceptionCode ec = 0;
64 WebCore::MessagePortArray dummyPorts;
65 RefPtr<WebCore::Intent> intent = WebCore::Intent::create(action, type, WebCore::SerializedScriptValue::createFromWire(data), dummyPorts, ec);
66 if (ec)
67 return;
68
69 HashMap<String, String> extras;
70 for (size_t i = 0; i < extrasNames.size() && i < extrasValues.size(); ++i)
71 extras.add(extrasNames[i], extrasValues[i]);
72 intent->setExtras(extras);
73
74 m_private = intent.release();
75 m_ownedChannels = ports;
76#endif
77}
78
79WebIntent::WebIntent(const WebString& action, const WebString& type, const WebString& unserializedData,
80 const WebVector<WebString>& extrasNames, const WebVector<WebString> extrasValues)
81{
82#if ENABLE(WEB_INTENTS)
83#if WEBKIT_USING_V8
84 v8::HandleScope scope;
85 v8::Local<v8::String> dataV8 = v8::String::New(reinterpret_cast<const uint16_t*>(unserializedData.data()),
86 static_cast<int>(unserializedData.length()));
87 WebSerializedScriptValue serializedData = WebSerializedScriptValue::serialize(dataV8);
88
89 WebCore::ExceptionCode ec = 0;
90 WebCore::MessagePortArray dummyPorts;
91 RefPtr<WebCore::Intent> intent = WebCore::Intent::create(action, type, serializedData, dummyPorts, ec);
92 if (ec)
93 return;
94
95 HashMap<String, String> extras;
96 for (size_t i = 0; i < extrasNames.size() && i < extrasValues.size(); ++i)
97 extras.add(extrasNames[i], extrasValues[i]);
98 intent->setExtras(extras);
99
100 m_private = intent.release();
101 m_ownedChannels = 0;
102#endif
103#endif
104}
105
106WebIntent::WebIntent(const WebString& action, const WebString& type, WebBlob* blob,
107 const WebVector<WebString>& extrasNames, const WebVector<WebString> extrasValues)
108{
109#if ENABLE(WEB_INTENTS)
110#if WEBKIT_USING_V8
111 WebSerializedScriptValue serializedData = WebSerializedScriptValue::serialize(blob->toV8Value());
112 WebCore::ExceptionCode ec = 0;
113 WebCore::MessagePortArray dummyPorts;
114 RefPtr<WebCore::Intent> intent = WebCore::Intent::create(action, type, serializedData, dummyPorts, ec);
115 if (ec)
116 return;
117
118 HashMap<String, String> extras;
119 for (size_t i = 0; i < extrasNames.size() && i < extrasValues.size(); ++i)
120 extras.add(extrasNames[i], extrasValues[i]);
121 intent->setExtras(extras);
122
123 m_private = intent.release();
124 m_ownedChannels = 0;
125#endif