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

Side by Side Diff: chrome/browser/ssl/ssl_manager.cc

Issue 6025009: Get rid of RenderViewHostDelegate::Resource and dispatch the IPC messages dir... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 11 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 "chrome/browser/ssl/ssl_manager.h" 5 #include "chrome/browser/ssl/ssl_manager.h"
6 6
7 #include "app/l10n_util.h" 7 #include "app/l10n_util.h"
8 #include "base/utf_string_conversions.h" 8 #include "base/utf_string_conversions.h"
9 #include "chrome/browser/browser_thread.h" 9 #include "chrome/browser/browser_thread.h"
10 #include "chrome/browser/load_from_memory_cache_details.h" 10 #include "chrome/browser/load_from_memory_cache_details.h"
11 #include "chrome/browser/net/url_request_tracking.h" 11 #include "chrome/browser/net/url_request_tracking.h"
12 #include "chrome/browser/prefs/pref_service.h" 12 #include "chrome/browser/prefs/pref_service.h"
13 #include "chrome/browser/renderer_host/resource_request_details.h" 13 #include "chrome/browser/renderer_host/resource_request_details.h"
14 #include "chrome/browser/renderer_host/resource_dispatcher_host.h"
15 #include "chrome/browser/renderer_host/resource_dispatcher_host_request_info.h"
14 #include "chrome/browser/ssl/ssl_cert_error_handler.h" 16 #include "chrome/browser/ssl/ssl_cert_error_handler.h"
15 #include "chrome/browser/ssl/ssl_policy.h" 17 #include "chrome/browser/ssl/ssl_policy.h"
16 #include "chrome/browser/ssl/ssl_request_info.h" 18 #include "chrome/browser/ssl/ssl_request_info.h"
17 #include "chrome/browser/tab_contents/navigation_controller.h" 19 #include "chrome/browser/tab_contents/navigation_controller.h"
18 #include "chrome/browser/tab_contents/navigation_entry.h" 20 #include "chrome/browser/tab_contents/navigation_entry.h"
19 #include "chrome/browser/tab_contents/provisional_load_details.h" 21 #include "chrome/browser/tab_contents/provisional_load_details.h"
22 #include "chrome/browser/tab_contents/tab_contents.h"
20 #include "chrome/common/notification_service.h" 23 #include "chrome/common/notification_service.h"
21 #include "chrome/common/pref_names.h" 24 #include "chrome/common/pref_names.h"
22 #include "grit/generated_resources.h" 25 #include "grit/generated_resources.h"
23 #include "net/base/cert_status_flags.h" 26 #include "net/base/cert_status_flags.h"
24 27
25 // static 28 // static
26 void SSLManager::OnSSLCertificateError(ResourceDispatcherHost* rdh, 29 void SSLManager::OnSSLCertificateError(ResourceDispatcherHost* rdh,
27 net::URLRequest* request, 30 net::URLRequest* request,
28 int cert_error, 31 int cert_error,
29 net::X509Certificate* cert) { 32 net::X509Certificate* cert) {
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 SSLManager::SSLManager(NavigationController* controller) 114 SSLManager::SSLManager(NavigationController* controller)
112 : backend_(controller), 115 : backend_(controller),
113 policy_(new SSLPolicy(&backend_)), 116 policy_(new SSLPolicy(&backend_)),
114 controller_(controller) { 117 controller_(controller) {
115 DCHECK(controller_); 118 DCHECK(controller_);
116 119
117 // Subscribe to various notifications. 120 // Subscribe to various notifications.
118 registrar_.Add(this, NotificationType::FAIL_PROVISIONAL_LOAD_WITH_ERROR, 121 registrar_.Add(this, NotificationType::FAIL_PROVISIONAL_LOAD_WITH_ERROR,
119 Source<NavigationController>(controller_)); 122 Source<NavigationController>(controller_));
120 registrar_.Add(this, NotificationType::RESOURCE_RESPONSE_STARTED, 123 registrar_.Add(this, NotificationType::RESOURCE_RESPONSE_STARTED,
121 Source<NavigationController>(controller_)); 124 Source<RenderViewHostDelegate>(controller_->tab_contents()));
122 registrar_.Add(this, NotificationType::RESOURCE_RECEIVED_REDIRECT, 125 registrar_.Add(this, NotificationType::RESOURCE_RECEIVED_REDIRECT,
123 Source<NavigationController>(controller_)); 126 Source<RenderViewHostDelegate>(controller_->tab_contents()));
124 registrar_.Add(this, NotificationType::LOAD_FROM_MEMORY_CACHE, 127 registrar_.Add(this, NotificationType::LOAD_FROM_MEMORY_CACHE,
125 Source<NavigationController>(controller_)); 128 Source<NavigationController>(controller_));
126 registrar_.Add(this, NotificationType::SSL_INTERNAL_STATE_CHANGED, 129 registrar_.Add(this, NotificationType::SSL_INTERNAL_STATE_CHANGED,
127 NotificationService::AllSources()); 130 NotificationService::AllSources());
128 } 131 }
129 132
130 SSLManager::~SSLManager() { 133 SSLManager::~SSLManager() {
131 } 134 }
132 135
133 void SSLManager::DidCommitProvisionalLoad( 136 void SSLManager::DidCommitProvisionalLoad(
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
197 break; 200 break;
198 case NotificationType::SSL_INTERNAL_STATE_CHANGED: 201 case NotificationType::SSL_INTERNAL_STATE_CHANGED:
199 DidChangeSSLInternalState(); 202 DidChangeSSLInternalState();
200 break; 203 break;
201 default: 204 default:
202 NOTREACHED() << "The SSLManager received an unexpected notification."; 205 NOTREACHED() << "The SSLManager received an unexpected notification.";
203 } 206 }
204 } 207 }
205 208
206 void SSLManager::DidLoadFromMemoryCache(LoadFromMemoryCacheDetails* details) { 209 void SSLManager::DidLoadFromMemoryCache(LoadFromMemoryCacheDetails* details) {
207 DCHECK(details);
208
209 // Simulate loading this resource through the usual path. 210 // Simulate loading this resource through the usual path.
210 // Note that we specify SUB_RESOURCE as the resource type as WebCore only 211 // Note that we specify SUB_RESOURCE as the resource type as WebCore only
211 // caches sub-resources. 212 // caches sub-resources.
212 // This resource must have been loaded with no filtering because filtered 213 // This resource must have been loaded with no filtering because filtered
213 // resouces aren't cachable. 214 // resouces aren't cachable.
214 scoped_refptr<SSLRequestInfo> info(new SSLRequestInfo( 215 scoped_refptr<SSLRequestInfo> info(new SSLRequestInfo(
215 details->url(), 216 details->url(),
216 ResourceType::SUB_RESOURCE, 217 ResourceType::SUB_RESOURCE,
217 details->frame_origin(), 218 details->frame_origin(),
218 details->main_frame_origin(), 219 details->main_frame_origin(),
219 details->pid(), 220 details->pid(),
220 details->ssl_cert_id(), 221 details->ssl_cert_id(),
221 details->ssl_cert_status())); 222 details->ssl_cert_status()));
222 223
223 // Simulate loading this resource through the usual path. 224 // Simulate loading this resource through the usual path.
224 policy()->OnRequestStarted(info.get()); 225 policy()->OnRequestStarted(info.get());
225 } 226 }
226 227
227 void SSLManager::DidStartResourceResponse(ResourceRequestDetails* details) { 228 void SSLManager::DidStartResourceResponse(ResourceRequestDetails* details) {
228 DCHECK(details);
229
230 scoped_refptr<SSLRequestInfo> info(new SSLRequestInfo( 229 scoped_refptr<SSLRequestInfo> info(new SSLRequestInfo(
231 details->url(), 230 details->url(),
232 details->resource_type(), 231 details->resource_type(),
233 details->frame_origin(), 232 details->frame_origin(),
234 details->main_frame_origin(), 233 details->main_frame_origin(),
235 details->origin_child_id(), 234 details->origin_child_id(),
236 details->ssl_cert_id(), 235 details->ssl_cert_id(),
237 details->ssl_cert_status())); 236 details->ssl_cert_status()));
238 237
239 // Notify our policy that we started a resource request. Ideally, the 238 // Notify our policy that we started a resource request. Ideally, the
(...skipping 24 matching lines...) Expand all
264 263
265 policy()->UpdateEntry(entry, controller_->tab_contents()); 264 policy()->UpdateEntry(entry, controller_->tab_contents());
266 265
267 if (!entry->ssl().Equals(original_ssl_status)) { 266 if (!entry->ssl().Equals(original_ssl_status)) {
268 NotificationService::current()->Notify( 267 NotificationService::current()->Notify(
269 NotificationType::SSL_VISIBLE_STATE_CHANGED, 268 NotificationType::SSL_VISIBLE_STATE_CHANGED,
270 Source<NavigationController>(controller_), 269 Source<NavigationController>(controller_),
271 NotificationService::NoDetails()); 270 NotificationService::NoDetails());
272 } 271 }
273 } 272 }
OLDNEW
« no previous file with comments | « chrome/browser/renderer_host/resource_request_details.cc ('k') | chrome/browser/tab_contents/tab_contents.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698