Chromium Code Reviews| Index: content/renderer/web_intents_host.cc |
| diff --git a/content/renderer/web_intents_host.cc b/content/renderer/web_intents_host.cc |
| index 9c60da3529fcf5f99ced41035fcc56b57fa0142a..f0425f2d0dcf5de2acf42ba655b2238c73986883 100644 |
| --- a/content/renderer/web_intents_host.cc |
| +++ b/content/renderer/web_intents_host.cc |
| @@ -8,6 +8,7 @@ |
| #include "base/bind_helpers.h" |
| #include "base/utf_string_conversions.h" |
| #include "content/common/intents_messages.h" |
| +#include "content/public/renderer/v8_value_converter.h" |
| #include "content/renderer/render_view_impl.h" |
| #include "ipc/ipc_message.h" |
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebBindings.h" |
| @@ -161,7 +162,6 @@ void WebIntentsHost::DidClearWindowObject(WebFrame* frame) { |
| serialized_data.toString(), |
| extras_keys, extras_values); |
| } else if (intent_->data_type == webkit_glue::WebIntentData::BLOB) { |
| - DCHECK(intent_->data_type == webkit_glue::WebIntentData::BLOB); |
| web_blob_ = WebBlob::createFromFile( |
| WebString::fromUTF8(intent_->blob_file.AsUTF8Unsafe()), |
| intent_->blob_length); |
| @@ -191,6 +191,36 @@ void WebIntentsHost::DidClearWindowObject(WebFrame* frame) { |
| web_intent = WebIntent::create(intent_->action, intent_->type, |
| serialized_data.toString(), |
| extras_keys, extras_values); |
| + } else if (intent_->data_type == webkit_glue::WebIntentData::MIME_TYPE) { |
| + // Do stuffs. |
|
groby-ooo-7-16
2012/10/05 17:56:35
You're fixing that comment, right? ;)
Greg Billock
2012/10/05 22:03:26
:-)
On 2012/10/05 17:56:35, groby wrote:
|
| + scoped_ptr<content::V8ValueConverter> converter( |
| + content::V8ValueConverter::create()); |
| + v8::Handle<v8::Array> dataV8 = v8::Array::New(intent_->mime_data.GetSize()); |
| + size_t j; |
| + for (j = 0; j < intent_->mime_data.GetSize(); ++j) { |
| + const DictionaryValue* val; |
| + if (!intent_->mime_data.GetDictionary(j, &val)) continue; |
| + v8::Handle<v8::Value> data_point_value = |
| + converter->ToV8Value(val, ctx); |
| + if (!data_point_value->IsObject()) continue; |
| + v8::Handle<v8::Object> data_point = data_point_value->ToObject(); |
| + if (j == 0 && !intent_->blob_file.empty()) { |
|
groby-ooo-7-16
2012/10/05 17:56:35
This seems odd in here. Can we actually have blob
Greg Billock
2012/10/05 22:03:26
Yes. It's just a struct. I'm not sure how else to
|
| + // If we are carrying blob data, convert it to v8 format |
| + // and set it to the "blob" property of |data_point|. |
| + web_blob_ = WebBlob::createFromFile( |
| + WebString::fromUTF8(intent_->blob_file.AsUTF8Unsafe()), |
| + intent_->blob_length); |
| + v8::Local<v8::String> blob_v8_key = v8::String::New("blob", 4); |
| + data_point->Set(blob_v8_key, web_blob_.toV8Value()); |
| + } |
| + dataV8->Set(j, data_point); |
| + } |
| + |
| + WebSerializedScriptValue serialized_data = |
| + WebSerializedScriptValue::serialize(dataV8); |
| + web_intent = WebIntent::create(intent_->action, intent_->type, |
|
groby-ooo-7-16
2012/10/05 17:56:35
Can we take the last two lines out of all the sepa
Greg Billock
2012/10/05 22:03:26
Good point. Will do.
On 2012/10/05 17:56:35, grob
|
| + serialized_data.toString(), |
| + extras_keys, extras_values); |
| } else { |
| NOTREACHED(); |
| } |