X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fchrome%2Fbrowser%2Fextensions%2Fapi%2Factivity_log_private%2Factivity_log_private_api.cc;h=e52a33c99fc4a2c4847b3a0fb2d0274ab5f69f71;hb=ff3e2503a20db9193d323c1d19c38c68004dec4a;hp=80368074271835a7febb7986dc184a1e4d934bad;hpb=d1e23c6ec4202b125fc446349b2230d4cd978d86;p=platform%2Fframework%2Fweb%2Fcrosswalk.git diff --git a/src/chrome/browser/extensions/api/activity_log_private/activity_log_private_api.cc b/src/chrome/browser/extensions/api/activity_log_private/activity_log_private_api.cc index 8036807..e52a33c 100644 --- a/src/chrome/browser/extensions/api/activity_log_private/activity_log_private_api.cc +++ b/src/chrome/browser/extensions/api/activity_log_private/activity_log_private_api.cc @@ -11,10 +11,12 @@ #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::GetFactoryInstance() { template<> void ProfileKeyedAPIFactory::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 params( + activity_log_private::DeleteActivities::Params::Create(*args_)); + EXTENSION_FUNCTION_VALIDATE(params.get()); + + // Put the arguments in the right format. + std::vector 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);