Index: components/reporting/content/browser/reporting_network_delegate.h |
diff --git a/components/reporting/content/browser/reporting_network_delegate.h b/components/reporting/content/browser/reporting_network_delegate.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..1140e015faa234ea772e0b7c06d769466c661abd |
--- /dev/null |
+++ b/components/reporting/content/browser/reporting_network_delegate.h |
@@ -0,0 +1,72 @@ |
+// Copyright 2016 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef COMPONENTS_REPORTING_CONTENT_BROWSER_REPORTING_NETWORK_DELEGATE_H_ |
+#define COMPONENTS_REPORTING_CONTENT_BROWSER_REPORTING_NETWORK_DELEGATE_H_ |
+ |
+#include <string> |
+ |
+#include "base/callback.h" |
+#include "base/macros.h" |
+#include "base/memory/weak_ptr.h" |
+#include "base/single_thread_task_runner.h" |
+#include "components/reporting/core/common/reporting_export.h" |
+#include "net/base/layered_network_delegate.h" |
+ |
+namespace content { |
+class BrowserContext; |
+} // namespace content |
+ |
+namespace reporting { |
+ |
+class REPORTING_EXPORT ReportingNetworkDelegate |
+ : public net::LayeredNetworkDelegate { |
Randy Smith (Not in Mondays)
2016/10/21 20:15:11
nit: Call out with comment implementation of Layer
Julia Tuttle
2016/11/02 20:44:39
Done.
|
+ public: |
+ static const char kReportingHeaderName[]; |
+ |
+ struct Handle { |
+ public: |
+ Handle(); |
+ ~Handle(); |
+ |
+ scoped_refptr<base::SingleThreadTaskRunner> task_runner; |
+ base::Callback<bool(void)> browser_context_is_valid; |
+ content::BrowserContext* browser_context; |
+ |
+ private: |
+ DISALLOW_COPY_AND_ASSIGN(Handle); |
+ }; |
+ |
+ explicit ReportingNetworkDelegate( |
+ std::unique_ptr<net::NetworkDelegate> nested_network_delegate, |
+ std::unique_ptr<Handle> handle); |
+ |
+ ~ReportingNetworkDelegate() override; |
+ |
+ protected: |
Randy Smith (Not in Mondays)
2016/10/21 20:15:11
Why? Nothing inherits from this, does it?
(I'm
Julia Tuttle
2016/11/02 20:44:39
Done.
|
+ void OnHeadersReceivedInternal( |
+ net::URLRequest* request, |
+ const net::CompletionCallback& callback, |
+ const net::HttpResponseHeaders* original_response_headers, |
+ scoped_refptr<net::HttpResponseHeaders>* override_response_headers, |
+ GURL* allowed_unsafe_redirect_url) override; |
+ |
+ private: |
+ void ProcessHeader(const GURL& origin, const std::string& header_value); |
+ |
+ static void ProcessHeaderOnUIThread( |
+ const base::Callback<bool(void)>& browser_context_is_valid, |
+ content::BrowserContext* browser_context, |
+ const GURL& origin, |
+ const std::string& header_value); |
+ |
+ scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner_; |
+ base::Callback<void(const GURL&, const std::string&)> ui_process_header_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(ReportingNetworkDelegate); |
+}; |
+ |
+} // namespace reporting |
+ |
+#endif // COMPONENTS_REPORTING_CONTENT_BROWSER_REPORTING_NETWORK_DELEGATE_H_ |