Chromium Code Reviews| Index: chrome/browser/extensions/api/feedback_private/feedback_private_api.cc |
| diff --git a/chrome/browser/extensions/api/feedback_private/feedback_private_api.cc b/chrome/browser/extensions/api/feedback_private/feedback_private_api.cc |
| index 455f65deb31d8cf02e1bad1a8282515b06baf9e7..4f12b9f14054ce03f513e6fe397c0e307a20961d 100644 |
| --- a/chrome/browser/extensions/api/feedback_private/feedback_private_api.cc |
| +++ b/chrome/browser/extensions/api/feedback_private/feedback_private_api.cc |
| @@ -4,7 +4,6 @@ |
| #include "chrome/browser/extensions/api/feedback_private/feedback_private_api.h" |
| -#include <memory> |
| #include <string> |
| #include <utility> |
| #include <vector> |
| @@ -72,9 +71,10 @@ namespace extensions { |
| namespace feedback_private = api::feedback_private; |
| -using feedback_private::SystemInformation; |
| using feedback_private::FeedbackInfo; |
| using feedback_private::FeedbackFlow; |
| +using feedback_private::LogSource; |
| +using feedback_private::SystemInformation; |
| using SystemInformationList = |
| std::vector<api::feedback_private::SystemInformation>; |
| @@ -89,16 +89,14 @@ FeedbackPrivateAPI::GetFactoryInstance() { |
| } |
| FeedbackPrivateAPI::FeedbackPrivateAPI(content::BrowserContext* context) |
| - : browser_context_(context), service_(new FeedbackService()) { |
| -} |
| + : browser_context_(context), |
| + service_(new FeedbackService()), |
| + log_source_access_manager_(new LogSourceAccessManager(context)) {} |
| -FeedbackPrivateAPI::~FeedbackPrivateAPI() { |
| - delete service_; |
| - service_ = NULL; |
| -} |
| +FeedbackPrivateAPI::~FeedbackPrivateAPI() {} |
| FeedbackService* FeedbackPrivateAPI::GetService() const { |
| - return service_; |
| + return service_.get(); |
| } |
| void FeedbackPrivateAPI::RequestFeedback( |
| @@ -265,6 +263,39 @@ void FeedbackPrivateGetSystemInformationFunction::OnCompleted( |
| feedback_private::GetSystemInformation::Results::Create(sys_info_list))); |
| } |
| +ExtensionFunction::ResponseAction FeedbackPrivateReadLogSourceFunction::Run() { |
| +#if defined(OS_CHROMEOS) |
| + using Params = feedback_private::ReadLogSource::Params; |
| + std::unique_ptr<Params> api_params = Params::Create(*args_); |
| + |
| + LogSourceAccessManager* log_source_manager = |
| + FeedbackPrivateAPI::GetFactoryInstance() |
| + ->Get(browser_context()) |
| + ->log_source_access_manager(); |
| + |
| + scoped_refptr<FeedbackPrivateReadLogSourceFunction> function = this; |
|
tbarzic
2017/06/06 20:27:25
you should not need this - just pass |this| to Bin
Simon Que
2017/06/06 22:29:14
Done.
|
| + if (!log_source_manager->FetchFromSource( |
| + api_params->params, extension_id(), |
| + base::Bind(&FeedbackPrivateReadLogSourceFunction::OnCompleted, |
| + function))) { |
| + return RespondNow(Error("Unable to initiate fetch from log source.")); |
| + } |
| + |
| + return RespondLater(); |
| +#else |
| + NOTREACHED() << "API function is not supported on this platform."; |
| + return RespondNow(Error("API function is not supported on this platform.")); |
| +#endif // defined(OS_CHROMEOS) |
| +} |
| + |
| +#if defined(OS_CHROMEOS) |
| +void FeedbackPrivateReadLogSourceFunction::OnCompleted( |
| + feedback_private::ReadLogSourceResult& result) { |
| + Respond( |
| + ArgumentList(feedback_private::ReadLogSource::Results::Create(result))); |
| +} |
| +#endif // defined(OS_CHROMEOS) |
| + |
| bool FeedbackPrivateSendFeedbackFunction::RunAsync() { |
| std::unique_ptr<feedback_private::SendFeedback::Params> params( |
| feedback_private::SendFeedback::Params::Create(*args_)); |