| Index: content/browser/renderer_host/websocket_host.cc
|
| diff --git a/content/browser/renderer_host/websocket_host.cc b/content/browser/renderer_host/websocket_host.cc
|
| index 70c846e39810248f7ac1974cdeb04a1f5efb9a9d..fbbd67fe90cc26a5aacff6bc06f2387a5f592e0b 100644
|
| --- a/content/browser/renderer_host/websocket_host.cc
|
| +++ b/content/browser/renderer_host/websocket_host.cc
|
| @@ -14,6 +14,7 @@
|
| #include "content/browser/ssl/ssl_error_handler.h"
|
| #include "content/browser/ssl/ssl_manager.h"
|
| #include "content/common/websocket_messages.h"
|
| +#include "content/public/browser/render_frame_host.h"
|
| #include "ipc/ipc_message_macros.h"
|
| #include "net/http/http_request_headers.h"
|
| #include "net/http/http_response_headers.h"
|
| @@ -83,6 +84,17 @@ ChannelState StateCast(WebSocketDispatcherHost::WebSocketHostState host_state) {
|
| return static_cast<ChannelState>(host_state);
|
| }
|
|
|
| +WebContents* GetWebContentsFromRFHID(int render_process_id,
|
| + int render_frame_id) {
|
| + DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
| + RenderFrameHost* render_frame_host =
|
| + RenderFrameHost::FromID(render_process_id, render_frame_id);
|
| + if (!render_frame_host)
|
| + return nullptr;
|
| +
|
| + return WebContents::FromRenderFrameHost(render_frame_host);
|
| +}
|
| +
|
| // Implementation of net::WebSocketEventInterface. Receives events from our
|
| // WebSocketChannel object. Each event is translated to an IPC and sent to the
|
| // renderer or child process via WebSocketDispatcherHost.
|
| @@ -274,13 +286,11 @@ ChannelState WebSocketEventHandler::OnSSLCertificateError(
|
| << " cert_status=" << ssl_info.cert_status << " fatal=" << fatal;
|
| ssl_error_handler_delegate_.reset(
|
| new SSLErrorHandlerDelegate(callbacks.Pass()));
|
| - SSLManager::OnSSLCertificateError(ssl_error_handler_delegate_->GetWeakPtr(),
|
| - RESOURCE_TYPE_SUB_RESOURCE,
|
| - url,
|
| - dispatcher_->render_process_id(),
|
| - render_frame_id_,
|
| - ssl_info,
|
| - fatal);
|
| + SSLManager::OnSSLCertificateError(
|
| + ssl_error_handler_delegate_->GetWeakPtr(), RESOURCE_TYPE_SUB_RESOURCE,
|
| + url, base::Bind(&GetWebContentsFromRFHID,
|
| + dispatcher_->render_process_id(), render_frame_id_),
|
| + ssl_info, fatal);
|
| // The above method is always asynchronous.
|
| return WebSocketEventInterface::CHANNEL_ALIVE;
|
| }
|
|
|