blob: ca858ebb164fce4ae861e0fc162486fd60606718 [file] [log] [blame]
[email protected]1eab4e92014-05-09 02:17:191// Copyright 2014 The Chromium Authors. All rights reserved.
[email protected]48372252013-12-20 12:18:012// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
[email protected]1eab4e92014-05-09 02:17:195#ifndef COMPONENTS_FEEDBACK_FEEDBACK_UPLOADER_DELEGATE_H_
6#define COMPONENTS_FEEDBACK_FEEDBACK_UPLOADER_DELEGATE_H_
[email protected]48372252013-12-20 12:18:017
[email protected]48372252013-12-20 12:18:018#include "base/callback.h"
avibc5337b2015-12-25 23:16:339#include "base/macros.h"
Ahmed Fakhryaf8ab052017-07-21 21:39:0710#include "base/memory/ref_counted.h"
[email protected]1eab4e92014-05-09 02:17:1911#include "components/feedback/feedback_uploader.h"
[email protected]48372252013-12-20 12:18:0112#include "net/url_request/url_fetcher_delegate.h"
13
14namespace feedback {
15
Ahmed Fakhryaf8ab052017-07-21 21:39:0716using ReportFailureCallback =
17 base::Callback<void(scoped_refptr<FeedbackReport>)>;
18
thestig144c0c92017-05-18 05:58:0219// FeedbackUploaderDelegate is a simple HTTP uploader for a feedback report.
20// When finished, it runs the appropriate callback passed in via the
21// constructor, and then deletes itself.
[email protected]48372252013-12-20 12:18:0122class FeedbackUploaderDelegate : public net::URLFetcherDelegate {
23 public:
Ahmed Fakhryaf8ab052017-07-21 21:39:0724 FeedbackUploaderDelegate(scoped_refptr<FeedbackReport> pending_report,
[email protected]48372252013-12-20 12:18:0125 const base::Closure& success_callback,
Ahmed Fakhryaf8ab052017-07-21 21:39:0726 const ReportFailureCallback& error_callback);
dcheng00ea022b2014-10-21 11:24:5627 ~FeedbackUploaderDelegate() override;
[email protected]48372252013-12-20 12:18:0128
29 private:
30 // Overridden from net::URLFetcherDelegate.
dcheng00ea022b2014-10-21 11:24:5631 void OnURLFetchComplete(const net::URLFetcher* source) override;
[email protected]48372252013-12-20 12:18:0132
Ahmed Fakhryaf8ab052017-07-21 21:39:0733 scoped_refptr<FeedbackReport> pending_report_;
[email protected]48372252013-12-20 12:18:0134 base::Closure success_callback_;
Ahmed Fakhryaf8ab052017-07-21 21:39:0735 ReportFailureCallback error_callback_;
[email protected]48372252013-12-20 12:18:0136
37 DISALLOW_COPY_AND_ASSIGN(FeedbackUploaderDelegate);
38};
39
40} // namespace feedback
41
[email protected]1eab4e92014-05-09 02:17:1942#endif // COMPONENTS_FEEDBACK_FEEDBACK_UPLOADER_DELEGATE_H_