Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(770)

Unified Diff: chrome/browser/extensions/api/feedback_private/feedback_private_api.cc

Issue 2840103002: Add new API function: feedbackPrivate.readLogSource (Closed)
Patch Set: Refactor passing of params from API into Log Source Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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_));

Powered by Google App Engine
This is Rietveld 408576698