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 | 8 |
9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
112 class URLRequestChromeJob : public net::URLRequestJob, | 112 class URLRequestChromeJob : public net::URLRequestJob, |
113 public base::SupportsWeakPtr<URLRequestChromeJob> { | 113 public base::SupportsWeakPtr<URLRequestChromeJob> { |
114 public: | 114 public: |
115 // |is_incognito| set when job is generated from an incognito profile. | 115 // |is_incognito| set when job is generated from an incognito profile. |
116 URLRequestChromeJob(net::URLRequest* request, | 116 URLRequestChromeJob(net::URLRequest* request, |
117 net::NetworkDelegate* network_delegate, | 117 net::NetworkDelegate* network_delegate, |
118 URLDataManagerBackend* backend, | 118 URLDataManagerBackend* backend, |
119 bool is_incognito); | 119 bool is_incognito); |
120 | 120 |
121 // net::URLRequestJob implementation. | 121 // net::URLRequestJob implementation. |
122 virtual void Start() override; | 122 void Start() override; |
123 virtual void Kill() override; | 123 void Kill() override; |
124 virtual bool ReadRawData(net::IOBuffer* buf, | 124 bool ReadRawData(net::IOBuffer* buf, int buf_size, int* bytes_read) override; |
125 int buf_size, | 125 bool GetMimeType(std::string* mime_type) const override; |
126 int* bytes_read) override; | 126 int GetResponseCode() const override; |
127 virtual bool GetMimeType(std::string* mime_type) const override; | 127 void GetResponseInfo(net::HttpResponseInfo* info) override; |
128 virtual int GetResponseCode() const override; | |
129 virtual void GetResponseInfo(net::HttpResponseInfo* info) override; | |
130 | 128 |
131 // Used to notify that the requested data's |mime_type| is ready. | 129 // Used to notify that the requested data's |mime_type| is ready. |
132 void MimeTypeAvailable(const std::string& mime_type); | 130 void MimeTypeAvailable(const std::string& mime_type); |
133 | 131 |
134 // Called by ChromeURLDataManager to notify us that the data blob is ready | 132 // Called by ChromeURLDataManager to notify us that the data blob is ready |
135 // for us. | 133 // for us. |
136 void DataAvailable(base::RefCountedMemory* bytes); | 134 void DataAvailable(base::RefCountedMemory* bytes); |
137 | 135 |
138 void set_mime_type(const std::string& mime_type) { | 136 void set_mime_type(const std::string& mime_type) { |
139 mime_type_ = mime_type; | 137 mime_type_ = mime_type; |
(...skipping 28 matching lines...) Expand all Loading... |
168 void set_access_control_allow_origin(const std::string& value) { | 166 void set_access_control_allow_origin(const std::string& value) { |
169 access_control_allow_origin_ = value; | 167 access_control_allow_origin_ = value; |
170 } | 168 } |
171 | 169 |
172 // Returns true when job was generated from an incognito profile. | 170 // Returns true when job was generated from an incognito profile. |
173 bool is_incognito() const { | 171 bool is_incognito() const { |
174 return is_incognito_; | 172 return is_incognito_; |
175 } | 173 } |
176 | 174 |
177 private: | 175 private: |
178 virtual ~URLRequestChromeJob(); | 176 ~URLRequestChromeJob() override; |
179 | 177 |
180 // Helper for Start(), to let us start asynchronously. | 178 // Helper for Start(), to let us start asynchronously. |
181 // (This pattern is shared by most net::URLRequestJob implementations.) | 179 // (This pattern is shared by most net::URLRequestJob implementations.) |
182 void StartAsync(bool allowed); | 180 void StartAsync(bool allowed); |
183 | 181 |
184 // Called on the UI thread to check if this request is allowed. | 182 // Called on the UI thread to check if this request is allowed. |
185 static void CheckStoragePartitionMatches( | 183 static void CheckStoragePartitionMatches( |
186 int render_process_id, | 184 int render_process_id, |
187 const GURL& url, | 185 const GURL& url, |
188 const base::WeakPtr<URLRequestChromeJob>& job); | 186 const base::WeakPtr<URLRequestChromeJob>& job); |
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
452 public: | 450 public: |
453 // |is_incognito| should be set for incognito profiles. | 451 // |is_incognito| should be set for incognito profiles. |
454 ChromeProtocolHandler(ResourceContext* resource_context, | 452 ChromeProtocolHandler(ResourceContext* resource_context, |
455 bool is_incognito, | 453 bool is_incognito, |
456 AppCacheServiceImpl* appcache_service, | 454 AppCacheServiceImpl* appcache_service, |
457 ChromeBlobStorageContext* blob_storage_context) | 455 ChromeBlobStorageContext* blob_storage_context) |
458 : resource_context_(resource_context), | 456 : resource_context_(resource_context), |
459 is_incognito_(is_incognito), | 457 is_incognito_(is_incognito), |
460 appcache_service_(appcache_service), | 458 appcache_service_(appcache_service), |
461 blob_storage_context_(blob_storage_context) {} | 459 blob_storage_context_(blob_storage_context) {} |
462 virtual ~ChromeProtocolHandler() {} | 460 ~ChromeProtocolHandler() override {} |
463 | 461 |
464 virtual net::URLRequestJob* MaybeCreateJob( | 462 net::URLRequestJob* MaybeCreateJob( |
465 net::URLRequest* request, | 463 net::URLRequest* request, |
466 net::NetworkDelegate* network_delegate) const override { | 464 net::NetworkDelegate* network_delegate) const override { |
467 DCHECK(request); | 465 DCHECK(request); |
468 | 466 |
469 // Check for chrome://view-http-cache/*, which uses its own job type. | 467 // Check for chrome://view-http-cache/*, which uses its own job type. |
470 if (ViewHttpCacheJobFactory::IsSupportedURL(request->url())) | 468 if (ViewHttpCacheJobFactory::IsSupportedURL(request->url())) |
471 return ViewHttpCacheJobFactory::CreateJobForRequest(request, | 469 return ViewHttpCacheJobFactory::CreateJobForRequest(request, |
472 network_delegate); | 470 network_delegate); |
473 | 471 |
474 // Next check for chrome://appcache-internals/, which uses its own job type. | 472 // Next check for chrome://appcache-internals/, which uses its own job type. |
(...skipping 22 matching lines...) Expand all Loading... |
497 request->url().host() == kChromeUIHistogramHost) { | 495 request->url().host() == kChromeUIHistogramHost) { |
498 return new HistogramInternalsRequestJob(request, network_delegate); | 496 return new HistogramInternalsRequestJob(request, network_delegate); |
499 } | 497 } |
500 | 498 |
501 // Fall back to using a custom handler | 499 // Fall back to using a custom handler |
502 return new URLRequestChromeJob( | 500 return new URLRequestChromeJob( |
503 request, network_delegate, | 501 request, network_delegate, |
504 GetURLDataManagerForResourceContext(resource_context_), is_incognito_); | 502 GetURLDataManagerForResourceContext(resource_context_), is_incognito_); |
505 } | 503 } |
506 | 504 |
507 virtual bool IsSafeRedirectTarget(const GURL& location) const override { | 505 bool IsSafeRedirectTarget(const GURL& location) const override { |
508 return false; | 506 return false; |
509 } | 507 } |
510 | 508 |
511 private: | 509 private: |
512 // These members are owned by ProfileIOData, which owns this ProtocolHandler. | 510 // These members are owned by ProfileIOData, which owns this ProtocolHandler. |
513 content::ResourceContext* const resource_context_; | 511 content::ResourceContext* const resource_context_; |
514 | 512 |
515 // True when generated from an incognito profile. | 513 // True when generated from an incognito profile. |
516 const bool is_incognito_; | 514 const bool is_incognito_; |
517 AppCacheServiceImpl* appcache_service_; | 515 AppCacheServiceImpl* appcache_service_; |
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
722 } | 720 } |
723 | 721 |
724 namespace { | 722 namespace { |
725 | 723 |
726 class DevToolsJobFactory | 724 class DevToolsJobFactory |
727 : public net::URLRequestJobFactory::ProtocolHandler { | 725 : public net::URLRequestJobFactory::ProtocolHandler { |
728 public: | 726 public: |
729 // |is_incognito| should be set for incognito profiles. | 727 // |is_incognito| should be set for incognito profiles. |
730 DevToolsJobFactory(content::ResourceContext* resource_context, | 728 DevToolsJobFactory(content::ResourceContext* resource_context, |
731 bool is_incognito); | 729 bool is_incognito); |
732 virtual ~DevToolsJobFactory(); | 730 ~DevToolsJobFactory() override; |
733 | 731 |
734 virtual net::URLRequestJob* MaybeCreateJob( | 732 net::URLRequestJob* MaybeCreateJob( |
735 net::URLRequest* request, | 733 net::URLRequest* request, |
736 net::NetworkDelegate* network_delegate) const override; | 734 net::NetworkDelegate* network_delegate) const override; |
737 | 735 |
738 private: | 736 private: |
739 // |resource_context_| and |network_delegate_| are owned by ProfileIOData, | 737 // |resource_context_| and |network_delegate_| are owned by ProfileIOData, |
740 // which owns this ProtocolHandler. | 738 // which owns this ProtocolHandler. |
741 content::ResourceContext* const resource_context_; | 739 content::ResourceContext* const resource_context_; |
742 | 740 |
743 // True when generated from an incognito profile. | 741 // True when generated from an incognito profile. |
744 const bool is_incognito_; | 742 const bool is_incognito_; |
(...skipping 21 matching lines...) Expand all Loading... |
766 | 764 |
767 } // namespace | 765 } // namespace |
768 | 766 |
769 net::URLRequestJobFactory::ProtocolHandler* | 767 net::URLRequestJobFactory::ProtocolHandler* |
770 CreateDevToolsProtocolHandler(content::ResourceContext* resource_context, | 768 CreateDevToolsProtocolHandler(content::ResourceContext* resource_context, |
771 bool is_incognito) { | 769 bool is_incognito) { |
772 return new DevToolsJobFactory(resource_context, is_incognito); | 770 return new DevToolsJobFactory(resource_context, is_incognito); |
773 } | 771 } |
774 | 772 |
775 } // namespace content | 773 } // namespace content |
OLD | NEW |