Chromium Code Reviews| Index: content/browser/devtools/render_frame_devtools_agent_host.cc |
| diff --git a/content/browser/devtools/render_frame_devtools_agent_host.cc b/content/browser/devtools/render_frame_devtools_agent_host.cc |
| index 90b18f127d7c4edc2f45c225aa6195fb7de4ece6..96121e423363e2190e843c81ff129aa87dae0f31 100644 |
| --- a/content/browser/devtools/render_frame_devtools_agent_host.cc |
| +++ b/content/browser/devtools/render_frame_devtools_agent_host.cc |
| @@ -11,6 +11,8 @@ |
| #include "base/json/json_reader.h" |
| #include "base/lazy_instance.h" |
| #include "base/memory/ptr_util.h" |
| +#include "base/process/process_handle.h" |
| +#include "base/strings/string_number_conversions.h" |
| #include "base/strings/utf_string_conversions.h" |
| #include "build/build_config.h" |
| #include "content/browser/bad_message.h" |
| @@ -47,6 +49,7 @@ |
| #include "content/public/browser/render_widget_host_iterator.h" |
| #include "content/public/browser/web_contents_delegate.h" |
| #include "content/public/common/browser_side_navigation_policy.h" |
| +#include "net/base/net_errors.h" |
| #if defined(OS_ANDROID) |
| #include "content/public/browser/render_widget_host_view.h" |
| @@ -382,6 +385,14 @@ void RenderFrameDevToolsAgentHost::OnBeforeNavigation( |
| } |
| // static |
| +void RenderFrameDevToolsAgentHost::OnFailedNavigation(RenderFrameHost* host, |
| + net::Error error_code) { |
| + RenderFrameDevToolsAgentHost* agent_host = FindAgentHost(host); |
| + if (agent_host) |
| + agent_host->OnFailedNavigation(error_code); |
| +} |
| + |
| +// static |
| std::unique_ptr<NavigationThrottle> |
| RenderFrameDevToolsAgentHost::CreateThrottleForNavigation( |
| NavigationHandle* navigation_handle) { |
| @@ -720,6 +731,24 @@ void RenderFrameDevToolsAgentHost::AboutToNavigate( |
| DCHECK(CheckConsistency()); |
| } |
| +void RenderFrameDevToolsAgentHost::OnFailedNavigation(net::Error error_code) { |
| + DCHECK(IsBrowserSideNavigationEnabled()); |
| + if (!session()) |
| + return; |
| + |
| + protocol::NetworkHandler* handler = |
| + protocol::NetworkHandler::FromSession(session()); |
| + if (!handler) |
| + return; |
| + |
| + static int next_id = 0; |
| + std::string request_id = base::IntToString(base::GetCurrentProcId()) + "." + |
|
dgozman
2017/02/27 17:31:31
I'd move protocol-specific code (like request id g
jam
2017/02/27 20:47:35
Done.
|
| + base::IntToString(++next_id); |
| + std::string error_string = net::ErrorToString(error_code); |
| + bool cancelled = error_code == net::Error::ERR_ABORTED; |
| + handler->NavigationFailed(request_id, error_string, cancelled); |
| +} |
| + |
| void RenderFrameDevToolsAgentHost::RenderFrameHostChanged( |
| RenderFrameHost* old_host, |
| RenderFrameHost* new_host) { |