| Index: chrome/browser/extensions/api/app_runtime/app_runtime_api.cc
|
| diff --git a/chrome/browser/extensions/api/app_runtime/app_runtime_api.cc b/chrome/browser/extensions/api/app_runtime/app_runtime_api.cc
|
| index b3071a05ed0d4d595ea3f18c1188c385269fd2d5..1609d29959972ff95720b37f83e8e48f7a0ba28f 100644
|
| --- a/chrome/browser/extensions/api/app_runtime/app_runtime_api.cc
|
| +++ b/chrome/browser/extensions/api/app_runtime/app_runtime_api.cc
|
| @@ -11,27 +11,18 @@
|
| #include "base/values.h"
|
| #include "chrome/browser/extensions/event_router.h"
|
| #include "chrome/browser/extensions/extension_system.h"
|
| -#include "chrome/browser/extensions/web_intent_callbacks.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| #include "chrome/common/extensions/extension.h"
|
| #include "content/public/browser/web_contents.h"
|
| -#include "content/public/browser/web_intents_dispatcher.h"
|
| #include "googleurl/src/gurl.h"
|
| -#include "webkit/glue/web_intent_data.h"
|
|
|
| namespace extensions {
|
|
|
| namespace {
|
|
|
| -const char kIntentIdKey[] = "intentId";
|
| -const char kIntentSuccessKey[] = "success";
|
| -const char kIntentDataKey[] = "data";
|
| const char kOnLaunchedEvent[] = "app.runtime.onLaunched";
|
| const char kOnRestartedEvent[] = "app.runtime.onRestarted";
|
|
|
| -const char kCallbackNotFoundError[] =
|
| - "WebIntent callback not found; perhaps already responded to";
|
| -
|
| void DispatchOnLaunchedEventImpl(const std::string& extension_id,
|
| scoped_ptr<base::ListValue> args,
|
| Profile* profile) {
|
| @@ -72,7 +63,7 @@ void AppEventRouter::DispatchOnRestartedEvent(
|
|
|
| // static.
|
| void AppEventRouter::DispatchOnLaunchedEventWithFileEntry(
|
| - Profile* profile, const Extension* extension, const string16& action,
|
| + Profile* profile, const Extension* extension,
|
| const std::string& handler_id, const std::string& mime_type,
|
| const std::string& file_system_id, const std::string& base_name) {
|
| scoped_ptr<ListValue> args(new ListValue());
|
| @@ -89,97 +80,8 @@ void AppEventRouter::DispatchOnLaunchedEventWithFileEntry(
|
| DispatchOnLaunchedEventImpl(extension->id(), args.Pass(), profile);
|
| }
|
|
|
| -// static.
|
| -void AppEventRouter::DispatchOnLaunchedEventWithWebIntent(
|
| - Profile* profile, const Extension* extension,
|
| - content::WebIntentsDispatcher* intents_dispatcher,
|
| - content::WebContents* source) {
|
| -#if defined(ENABLE_WEB_INTENTS)
|
| - webkit_glue::WebIntentData web_intent_data = intents_dispatcher->GetIntent();
|
| - scoped_ptr<ListValue> args(new ListValue());
|
| - DictionaryValue* launch_data = new DictionaryValue();
|
| - DictionaryValue* intent = new DictionaryValue();
|
| - intent->SetString("action", UTF16ToUTF8(web_intent_data.action));
|
| - intent->SetString("type", UTF16ToUTF8(web_intent_data.type));
|
| - launch_data->Set("intent", intent);
|
| - args->Append(launch_data);
|
| - DictionaryValue* intent_data;
|
| - switch (web_intent_data.data_type) {
|
| - case webkit_glue::WebIntentData::SERIALIZED:
|
| - intent_data = new DictionaryValue();
|
| - intent_data->SetString("format", "serialized");
|
| - intent_data->SetString("data", UTF16ToUTF8(web_intent_data.data));
|
| - // NOTE: This second argument is dropped before being dispatched to the
|
| - // client code.
|
| - args->Append(intent_data);
|
| - break;
|
| - case webkit_glue::WebIntentData::UNSERIALIZED:
|
| - args->Append(Value::CreateNullValue());
|
| - intent->SetString("data", UTF16ToUTF8(web_intent_data.unserialized_data));
|
| - break;
|
| - case webkit_glue::WebIntentData::BLOB:
|
| - intent_data = new DictionaryValue();
|
| - intent_data->SetString("format", "blob");
|
| - intent_data->SetString("blobFileName", web_intent_data.blob_file.value());
|
| - intent_data->SetString("blobLength",
|
| - base::Int64ToString(web_intent_data.blob_length));
|
| - // NOTE: This second argument is dropped before being dispatched to the
|
| - // client code.
|
| - args->Append(intent_data);
|
| - break;
|
| - case webkit_glue::WebIntentData::FILESYSTEM:
|
| - intent_data = new DictionaryValue();
|
| - intent_data->SetString("format", "filesystem");
|
| - intent_data->SetString("fileSystemId", web_intent_data.filesystem_id);
|
| - intent_data->SetString("baseName", web_intent_data.root_name);
|
| - args->Append(intent_data);
|
| - break;
|
| - default:
|
| - NOTREACHED();
|
| - break;
|
| - }
|
| - DCHECK(args->GetSize() == 2); // intent_id must be our third argument.
|
| - WebIntentCallbacks* callbacks = WebIntentCallbacks::Get(profile);
|
| - int intent_id =
|
| - callbacks->RegisterCallback(extension, intents_dispatcher, source);
|
| - args->Append(base::Value::CreateIntegerValue(intent_id));
|
| - DispatchOnLaunchedEventImpl(extension->id(), args.Pass(), profile);
|
| -#endif
|
| -}
|
| -
|
| bool AppRuntimePostIntentResponseFunction::RunImpl() {
|
| -#if defined(ENABLE_WEB_INTENTS)
|
| - DictionaryValue* details = NULL;
|
| - EXTENSION_FUNCTION_VALIDATE(args_->GetDictionary(0, &details));
|
| -
|
| - int intent_id = 0;
|
| - EXTENSION_FUNCTION_VALIDATE(details->GetInteger(kIntentIdKey, &intent_id));
|
| -
|
| - WebIntentCallbacks* callbacks = WebIntentCallbacks::Get(profile());
|
| - content::WebIntentsDispatcher* intents_dispatcher =
|
| - callbacks->RetrieveCallback(GetExtension(), intent_id);
|
| - if (!intents_dispatcher) {
|
| - error_ = kCallbackNotFoundError;
|
| - return false;
|
| - }
|
| -
|
| - webkit_glue::WebIntentReplyType reply_type =
|
| - webkit_glue::WEB_INTENT_REPLY_FAILURE;
|
| - bool success;
|
| - EXTENSION_FUNCTION_VALIDATE(details->GetBoolean(kIntentSuccessKey, &success));
|
| - if (success)
|
| - reply_type = webkit_glue::WEB_INTENT_REPLY_SUCCESS;
|
| -
|
| - std::string data;
|
| - EXTENSION_FUNCTION_VALIDATE(details->GetString(kIntentDataKey, &data));
|
| -
|
| - intents_dispatcher->SendReply(webkit_glue::WebIntentReply(
|
| - reply_type, UTF8ToUTF16(data)));
|
| -
|
| - return true;
|
| -#else
|
| return false;
|
| -#endif
|
| }
|
|
|
| } // namespace extensions
|
|
|