| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/ssl/ssl_manager.h" | 5 #include "content/browser/ssl/ssl_manager.h" |
| 6 | 6 |
| 7 #include "base/utf_string_conversions.h" | 7 #include "base/utf_string_conversions.h" |
| 8 #include "content/browser/browser_thread.h" | 8 #include "content/browser/browser_thread.h" |
| 9 #include "content/browser/load_from_memory_cache_details.h" | 9 #include "content/browser/load_from_memory_cache_details.h" |
| 10 #include "content/browser/renderer_host/resource_dispatcher_host.h" | 10 #include "content/browser/renderer_host/resource_dispatcher_host.h" |
| (...skipping 29 matching lines...) Expand all Loading... |
| 40 request, | 40 request, |
| 41 info->resource_type(), | 41 info->resource_type(), |
| 42 cert_error, | 42 cert_error, |
| 43 cert), | 43 cert), |
| 44 &SSLCertErrorHandler::Dispatch)); | 44 &SSLCertErrorHandler::Dispatch)); |
| 45 } | 45 } |
| 46 | 46 |
| 47 // static | 47 // static |
| 48 void SSLManager::NotifySSLInternalStateChanged() { | 48 void SSLManager::NotifySSLInternalStateChanged() { |
| 49 NotificationService::current()->Notify( | 49 NotificationService::current()->Notify( |
| 50 NotificationType::SSL_INTERNAL_STATE_CHANGED, | 50 content::NOTIFICATION_SSL_INTERNAL_STATE_CHANGED, |
| 51 NotificationService::AllSources(), | 51 NotificationService::AllSources(), |
| 52 NotificationService::NoDetails()); | 52 NotificationService::NoDetails()); |
| 53 } | 53 } |
| 54 | 54 |
| 55 // static | 55 // static |
| 56 std::string SSLManager::SerializeSecurityInfo(int cert_id, | 56 std::string SSLManager::SerializeSecurityInfo(int cert_id, |
| 57 int cert_status, | 57 int cert_status, |
| 58 int security_bits, | 58 int security_bits, |
| 59 int ssl_connection_status) { | 59 int ssl_connection_status) { |
| 60 Pickle pickle; | 60 Pickle pickle; |
| (...skipping 29 matching lines...) Expand all Loading... |
| 90 pickle.ReadInt(&iter, ssl_connection_status); | 90 pickle.ReadInt(&iter, ssl_connection_status); |
| 91 } | 91 } |
| 92 | 92 |
| 93 SSLManager::SSLManager(NavigationController* controller) | 93 SSLManager::SSLManager(NavigationController* controller) |
| 94 : backend_(controller), | 94 : backend_(controller), |
| 95 policy_(new SSLPolicy(&backend_)), | 95 policy_(new SSLPolicy(&backend_)), |
| 96 controller_(controller) { | 96 controller_(controller) { |
| 97 DCHECK(controller_); | 97 DCHECK(controller_); |
| 98 | 98 |
| 99 // Subscribe to various notifications. | 99 // Subscribe to various notifications. |
| 100 registrar_.Add(this, NotificationType::FAIL_PROVISIONAL_LOAD_WITH_ERROR, | 100 registrar_.Add(this, content::NOTIFICATION_FAIL_PROVISIONAL_LOAD_WITH_ERROR, |
| 101 Source<NavigationController>(controller_)); | 101 Source<NavigationController>(controller_)); |
| 102 registrar_.Add(this, NotificationType::RESOURCE_RESPONSE_STARTED, | 102 registrar_.Add(this, content::NOTIFICATION_RESOURCE_RESPONSE_STARTED, |
| 103 Source<RenderViewHostDelegate>(controller_->tab_contents())); | 103 Source<RenderViewHostDelegate>(controller_->tab_contents())); |
| 104 registrar_.Add(this, NotificationType::RESOURCE_RECEIVED_REDIRECT, | 104 registrar_.Add(this, content::NOTIFICATION_RESOURCE_RECEIVED_REDIRECT, |
| 105 Source<RenderViewHostDelegate>(controller_->tab_contents())); | 105 Source<RenderViewHostDelegate>(controller_->tab_contents())); |
| 106 registrar_.Add(this, NotificationType::LOAD_FROM_MEMORY_CACHE, | 106 registrar_.Add(this, content::NOTIFICATION_LOAD_FROM_MEMORY_CACHE, |
| 107 Source<NavigationController>(controller_)); | 107 Source<NavigationController>(controller_)); |
| 108 registrar_.Add(this, NotificationType::SSL_INTERNAL_STATE_CHANGED, | 108 registrar_.Add(this, content::NOTIFICATION_SSL_INTERNAL_STATE_CHANGED, |
| 109 NotificationService::AllSources()); | 109 NotificationService::AllSources()); |
| 110 } | 110 } |
| 111 | 111 |
| 112 SSLManager::~SSLManager() { | 112 SSLManager::~SSLManager() { |
| 113 } | 113 } |
| 114 | 114 |
| 115 void SSLManager::DidCommitProvisionalLoad( | 115 void SSLManager::DidCommitProvisionalLoad( |
| 116 const NotificationDetails& in_details) { | 116 const NotificationDetails& in_details) { |
| 117 content::LoadCommittedDetails* details = | 117 content::LoadCommittedDetails* details = |
| 118 Details<content::LoadCommittedDetails>(in_details).ptr(); | 118 Details<content::LoadCommittedDetails>(in_details).ptr(); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 151 bool SSLManager::ProcessedSSLErrorFromRequest() const { | 151 bool SSLManager::ProcessedSSLErrorFromRequest() const { |
| 152 NavigationEntry* entry = controller_->GetActiveEntry(); | 152 NavigationEntry* entry = controller_->GetActiveEntry(); |
| 153 if (!entry) { | 153 if (!entry) { |
| 154 NOTREACHED(); | 154 NOTREACHED(); |
| 155 return false; | 155 return false; |
| 156 } | 156 } |
| 157 | 157 |
| 158 return net::IsCertStatusError(entry->ssl().cert_status()); | 158 return net::IsCertStatusError(entry->ssl().cert_status()); |
| 159 } | 159 } |
| 160 | 160 |
| 161 void SSLManager::Observe(NotificationType type, | 161 void SSLManager::Observe(int type, |
| 162 const NotificationSource& source, | 162 const NotificationSource& source, |
| 163 const NotificationDetails& details) { | 163 const NotificationDetails& details) { |
| 164 // Dispatch by type. | 164 // Dispatch by type. |
| 165 switch (type.value) { | 165 switch (type) { |
| 166 case NotificationType::FAIL_PROVISIONAL_LOAD_WITH_ERROR: | 166 case content::NOTIFICATION_FAIL_PROVISIONAL_LOAD_WITH_ERROR: |
| 167 // Do nothing. | 167 // Do nothing. |
| 168 break; | 168 break; |
| 169 case NotificationType::RESOURCE_RESPONSE_STARTED: | 169 case content::NOTIFICATION_RESOURCE_RESPONSE_STARTED: |
| 170 DidStartResourceResponse(Details<ResourceRequestDetails>(details).ptr()); | 170 DidStartResourceResponse(Details<ResourceRequestDetails>(details).ptr()); |
| 171 break; | 171 break; |
| 172 case NotificationType::RESOURCE_RECEIVED_REDIRECT: | 172 case content::NOTIFICATION_RESOURCE_RECEIVED_REDIRECT: |
| 173 DidReceiveResourceRedirect( | 173 DidReceiveResourceRedirect( |
| 174 Details<ResourceRedirectDetails>(details).ptr()); | 174 Details<ResourceRedirectDetails>(details).ptr()); |
| 175 break; | 175 break; |
| 176 case NotificationType::LOAD_FROM_MEMORY_CACHE: | 176 case content::NOTIFICATION_LOAD_FROM_MEMORY_CACHE: |
| 177 DidLoadFromMemoryCache( | 177 DidLoadFromMemoryCache( |
| 178 Details<LoadFromMemoryCacheDetails>(details).ptr()); | 178 Details<LoadFromMemoryCacheDetails>(details).ptr()); |
| 179 break; | 179 break; |
| 180 case NotificationType::SSL_INTERNAL_STATE_CHANGED: | 180 case content::NOTIFICATION_SSL_INTERNAL_STATE_CHANGED: |
| 181 DidChangeSSLInternalState(); | 181 DidChangeSSLInternalState(); |
| 182 break; | 182 break; |
| 183 default: | 183 default: |
| 184 NOTREACHED() << "The SSLManager received an unexpected notification."; | 184 NOTREACHED() << "The SSLManager received an unexpected notification."; |
| 185 } | 185 } |
| 186 } | 186 } |
| 187 | 187 |
| 188 void SSLManager::DidLoadFromMemoryCache(LoadFromMemoryCacheDetails* details) { | 188 void SSLManager::DidLoadFromMemoryCache(LoadFromMemoryCacheDetails* details) { |
| 189 // Simulate loading this resource through the usual path. | 189 // Simulate loading this resource through the usual path. |
| 190 // Note that we specify SUB_RESOURCE as the resource type as WebCore only | 190 // Note that we specify SUB_RESOURCE as the resource type as WebCore only |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 233 // case of the Web Inspector. | 233 // case of the Web Inspector. |
| 234 if (!entry) | 234 if (!entry) |
| 235 return; | 235 return; |
| 236 | 236 |
| 237 NavigationEntry::SSLStatus original_ssl_status = entry->ssl(); // Copy! | 237 NavigationEntry::SSLStatus original_ssl_status = entry->ssl(); // Copy! |
| 238 | 238 |
| 239 policy()->UpdateEntry(entry, controller_->tab_contents()); | 239 policy()->UpdateEntry(entry, controller_->tab_contents()); |
| 240 | 240 |
| 241 if (!entry->ssl().Equals(original_ssl_status)) { | 241 if (!entry->ssl().Equals(original_ssl_status)) { |
| 242 NotificationService::current()->Notify( | 242 NotificationService::current()->Notify( |
| 243 NotificationType::SSL_VISIBLE_STATE_CHANGED, | 243 content::NOTIFICATION_SSL_VISIBLE_STATE_CHANGED, |
| 244 Source<NavigationController>(controller_), | 244 Source<NavigationController>(controller_), |
| 245 NotificationService::NoDetails()); | 245 NotificationService::NoDetails()); |
| 246 } | 246 } |
| 247 } | 247 } |
| OLD | NEW |