OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/browser/webui/url_data_manager_backend.h" | 5 #include "content/browser/webui/url_data_manager_backend.h" |
6 | 6 |
7 #include <set> | 7 #include <set> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 22 matching lines...) Expand all Loading... |
33 #include "content/browser/webui/shared_resources_data_source.h" | 33 #include "content/browser/webui/shared_resources_data_source.h" |
34 #include "content/browser/webui/url_data_source_impl.h" | 34 #include "content/browser/webui/url_data_source_impl.h" |
35 #include "content/public/browser/browser_context.h" | 35 #include "content/public/browser/browser_context.h" |
36 #include "content/public/browser/browser_thread.h" | 36 #include "content/public/browser/browser_thread.h" |
37 #include "content/public/browser/content_browser_client.h" | 37 #include "content/public/browser/content_browser_client.h" |
38 #include "content/public/browser/render_process_host.h" | 38 #include "content/public/browser/render_process_host.h" |
39 #include "content/public/browser/resource_request_info.h" | 39 #include "content/public/browser/resource_request_info.h" |
40 #include "content/public/common/url_constants.h" | 40 #include "content/public/common/url_constants.h" |
41 #include "net/base/io_buffer.h" | 41 #include "net/base/io_buffer.h" |
42 #include "net/base/net_errors.h" | 42 #include "net/base/net_errors.h" |
43 #include "net/filter/filter.h" | 43 #include "net/filter/gzip_source_stream.h" |
| 44 #include "net/filter/source_stream.h" |
44 #include "net/http/http_response_headers.h" | 45 #include "net/http/http_response_headers.h" |
45 #include "net/http/http_status_code.h" | 46 #include "net/http/http_status_code.h" |
46 #include "net/log/net_log_util.h" | 47 #include "net/log/net_log_util.h" |
47 #include "net/url_request/url_request.h" | 48 #include "net/url_request/url_request.h" |
48 #include "net/url_request/url_request_context.h" | 49 #include "net/url_request/url_request_context.h" |
49 #include "net/url_request/url_request_error_job.h" | 50 #include "net/url_request/url_request_error_job.h" |
50 #include "net/url_request/url_request_job.h" | 51 #include "net/url_request/url_request_job.h" |
51 #include "net/url_request/url_request_job_factory.h" | 52 #include "net/url_request/url_request_job_factory.h" |
52 #include "url/url_util.h" | 53 #include "url/url_util.h" |
53 | 54 |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
135 URLDataManagerBackend* backend, | 136 URLDataManagerBackend* backend, |
136 bool is_incognito); | 137 bool is_incognito); |
137 | 138 |
138 // net::URLRequestJob implementation. | 139 // net::URLRequestJob implementation. |
139 void Start() override; | 140 void Start() override; |
140 void Kill() override; | 141 void Kill() override; |
141 int ReadRawData(net::IOBuffer* buf, int buf_size) override; | 142 int ReadRawData(net::IOBuffer* buf, int buf_size) override; |
142 bool GetMimeType(std::string* mime_type) const override; | 143 bool GetMimeType(std::string* mime_type) const override; |
143 int GetResponseCode() const override; | 144 int GetResponseCode() const override; |
144 void GetResponseInfo(net::HttpResponseInfo* info) override; | 145 void GetResponseInfo(net::HttpResponseInfo* info) override; |
145 std::unique_ptr<net::Filter> SetupFilter() const override; | 146 std::unique_ptr<net::SourceStream> SetUpSourceStream() override; |
146 | 147 |
147 // Used to notify that the requested data's |mime_type| is ready. | 148 // Used to notify that the requested data's |mime_type| is ready. |
148 void MimeTypeAvailable(const std::string& mime_type); | 149 void MimeTypeAvailable(const std::string& mime_type); |
149 | 150 |
150 // Called by ChromeURLDataManager to notify us that the data blob is ready | 151 // Called by ChromeURLDataManager to notify us that the data blob is ready |
151 // for us. |bytes| may be null, indicating an error. | 152 // for us. |bytes| may be null, indicating an error. |
152 void DataAvailable(base::RefCountedMemory* bytes); | 153 void DataAvailable(base::RefCountedMemory* bytes); |
153 | 154 |
154 // Returns a weak pointer to the job. | 155 // Returns a weak pointer to the job. |
155 base::WeakPtr<URLRequestChromeJob> AsWeakPtr(); | 156 base::WeakPtr<URLRequestChromeJob> AsWeakPtr(); |
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
385 if (!access_control_allow_origin_.empty()) { | 386 if (!access_control_allow_origin_.empty()) { |
386 info->headers->AddHeader("Access-Control-Allow-Origin: " + | 387 info->headers->AddHeader("Access-Control-Allow-Origin: " + |
387 access_control_allow_origin_); | 388 access_control_allow_origin_); |
388 info->headers->AddHeader("Vary: Origin"); | 389 info->headers->AddHeader("Vary: Origin"); |
389 } | 390 } |
390 | 391 |
391 if (is_gzipped_) | 392 if (is_gzipped_) |
392 info->headers->AddHeader("Content-Encoding: gzip"); | 393 info->headers->AddHeader("Content-Encoding: gzip"); |
393 } | 394 } |
394 | 395 |
395 std::unique_ptr<net::Filter> URLRequestChromeJob::SetupFilter() const { | 396 std::unique_ptr<net::SourceStream> URLRequestChromeJob::SetUpSourceStream() { |
396 return is_gzipped_ ? net::Filter::GZipFactory() : nullptr; | 397 std::unique_ptr<net::SourceStream> source = |
| 398 net::URLRequestJob::SetUpSourceStream(); |
| 399 return is_gzipped_ ? net::GzipSourceStream::Create( |
| 400 std::move(source), net::SourceStream::TYPE_GZIP) |
| 401 : nullptr; |
397 } | 402 } |
398 | 403 |
399 void URLRequestChromeJob::MimeTypeAvailable(const std::string& mime_type) { | 404 void URLRequestChromeJob::MimeTypeAvailable(const std::string& mime_type) { |
400 set_mime_type(mime_type); | 405 set_mime_type(mime_type); |
401 NotifyHeadersComplete(); | 406 NotifyHeadersComplete(); |
402 } | 407 } |
403 | 408 |
404 void URLRequestChromeJob::DataAvailable(base::RefCountedMemory* bytes) { | 409 void URLRequestChromeJob::DataAvailable(base::RefCountedMemory* bytes) { |
405 TRACE_EVENT_ASYNC_END0("browser", "DataManager:Request", this); | 410 TRACE_EVENT_ASYNC_END0("browser", "DataManager:Request", this); |
406 DCHECK(!data_); | 411 DCHECK(!data_); |
(...skipping 430 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
837 | 842 |
838 } // namespace | 843 } // namespace |
839 | 844 |
840 net::URLRequestJobFactory::ProtocolHandler* CreateDevToolsProtocolHandler( | 845 net::URLRequestJobFactory::ProtocolHandler* CreateDevToolsProtocolHandler( |
841 ResourceContext* resource_context, | 846 ResourceContext* resource_context, |
842 bool is_incognito) { | 847 bool is_incognito) { |
843 return new DevToolsJobFactory(resource_context, is_incognito); | 848 return new DevToolsJobFactory(resource_context, is_incognito); |
844 } | 849 } |
845 | 850 |
846 } // namespace content | 851 } // namespace content |
OLD | NEW |