Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / extensions / api / activity_log_private / activity_log_private_api.cc
index 8036807..e52a33c 100644 (file)
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/extensions/event_router_forwarder.h"
 #include "chrome/browser/extensions/extension_service.h"
-#include "chrome/browser/extensions/extension_system.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/common/extensions/api/activity_log_private.h"
 #include "chrome/common/pref_names.h"
+#include "extensions/browser/extension_system.h"
+#include "extensions/browser/extension_system_provider.h"
+#include "extensions/browser/extensions_browser_client.h"
 #include "extensions/common/features/feature.h"
 #include "extensions/common/features/feature_provider.h"
 
@@ -36,7 +38,7 @@ ProfileKeyedAPIFactory<ActivityLogAPI>* ActivityLogAPI::GetFactoryInstance() {
 
 template<>
 void ProfileKeyedAPIFactory<ActivityLogAPI>::DeclareFactoryDependencies() {
-  DependsOn(ExtensionSystemFactory::GetInstance());
+  DependsOn(ExtensionsBrowserClient::Get()->GetExtensionSystemFactory());
   DependsOn(ActivityLogFactory::GetInstance());
 }
 
@@ -174,6 +176,25 @@ void ActivityLogPrivateGetExtensionActivitiesFunction::OnLookupCompleted(
   SendResponse(true);
 }
 
+bool ActivityLogPrivateDeleteActivitiesFunction::RunImpl() {
+  scoped_ptr<activity_log_private::DeleteActivities::Params> params(
+      activity_log_private::DeleteActivities::Params::Create(*args_));
+  EXTENSION_FUNCTION_VALIDATE(params.get());
+
+  // Put the arguments in the right format.
+  std::vector<int64> action_ids;
+  int64 value;
+  for (size_t i = 0; i < params->activity_ids.size(); i++) {
+    if (base::StringToInt64(params->activity_ids[i], &value))
+      action_ids.push_back(value);
+  }
+
+  ActivityLog* activity_log = ActivityLog::GetInstance(GetProfile());
+  DCHECK(activity_log);
+  activity_log->RemoveActions(action_ids);
+  return true;
+}
+
 bool ActivityLogPrivateDeleteDatabaseFunction::RunImpl() {
   ActivityLog* activity_log = ActivityLog::GetInstance(GetProfile());
   DCHECK(activity_log);