Index: extensions/browser/api/app_runtime/app_runtime_api.cc |
diff --git a/extensions/browser/api/app_runtime/app_runtime_api.cc b/extensions/browser/api/app_runtime/app_runtime_api.cc |
index 2b225df2f2f35628f5559423d10840d59fafbd0b..07e262018e90c617535e9cdf1382b206b4239972 100644 |
--- a/extensions/browser/api/app_runtime/app_runtime_api.cc |
+++ b/extensions/browser/api/app_runtime/app_runtime_api.cc |
@@ -29,6 +29,25 @@ namespace app_runtime = api::app_runtime; |
namespace { |
+// Converts an ActionType instance to an app_runtime::ActionType instance. |
+app_runtime::ActionType MapActionType(ActionType action_type) { |
+ switch (action_type) { |
+ case ActionType::NEW_NOTE: |
+ return app_runtime::ActionType::ACTION_TYPE_NEW_NOTE; |
+ default: |
+ return app_runtime::ActionType::ACTION_TYPE_NONE; |
+ } |
+} |
+ |
+// Converts an ActionData instance to an app_runtime::ActionData instance. |
+app_runtime::ActionData* BuildActionData(ActionData action_data) { |
+ auto* data = new app_runtime::ActionData(); |
+ |
+ data->action_type = MapActionType(action_data.action_type); |
+ |
+ return data; |
+} |
+ |
void DispatchOnEmbedRequestedEventImpl( |
const std::string& extension_id, |
std::unique_ptr<base::DictionaryValue> app_embedding_request_data, |
@@ -116,6 +135,8 @@ app_runtime::LaunchSource getLaunchSourceEnum( |
return app_runtime::LAUNCH_SOURCE_TEST; |
case extensions::SOURCE_INSTALLED_NOTIFICATION: |
return app_runtime::LAUNCH_SOURCE_INSTALLED_NOTIFICATION; |
+ case extensions::SOURCE_ACTION: |
+ return app_runtime::LAUNCH_SOURCE_ACTION; |
default: |
return app_runtime::LAUNCH_SOURCE_NONE; |
@@ -217,4 +238,18 @@ void AppRuntimeEventRouter::DispatchOnLaunchedEventWithUrl( |
launch_data.ToValue(), context); |
} |
+// static |
+void AppRuntimeEventRouter::DispatchOnLaunchedEventWithAction( |
+ content::BrowserContext* context, |
+ const Extension* extension, |
+ ActionData action_data) { |
+ app_runtime::LaunchSource source_enum = app_runtime::LAUNCH_SOURCE_ACTION; |
+ |
+ app_runtime::LaunchData launch_data; |
+ launch_data.action_data.reset(BuildActionData(action_data)); |
Daniel Erat
2016/08/05 23:36:45
does the action_data member end up being a unique_
jdufault
2016/08/10 22:01:17
Done.
|
+ |
+ DispatchOnLaunchedEventImpl(extension->id(), source_enum, |
+ launch_data.ToValue(), context); |
+} |
+ |
} // namespace extensions |