| Index: chrome/renderer/net/net_error_helper.cc
|
| diff --git a/chrome/renderer/net/net_error_helper.cc b/chrome/renderer/net/net_error_helper.cc
|
| index d2d98fb1490641947c46eb7c63f41830d585c905..28ca2c1635c1ffd8d763c9915e931a1f9cf4bf06 100644
|
| --- a/chrome/renderer/net/net_error_helper.cc
|
| +++ b/chrome/renderer/net/net_error_helper.cc
|
| @@ -82,6 +82,7 @@ NetErrorHelperCore::FrameType GetFrameType(RenderFrame* render_frame) {
|
| NetErrorHelper::NetErrorHelper(RenderFrame* render_frame)
|
| : RenderFrameObserver(render_frame),
|
| content::RenderFrameObserverTracker<NetErrorHelper>(render_frame),
|
| + network_diagnostics_client_binding_(this),
|
| weak_controller_delegate_factory_(this) {
|
| RenderThread::Get()->AddObserver(this);
|
| base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
|
| @@ -95,6 +96,10 @@ NetErrorHelper::NetErrorHelper(RenderFrame* render_frame)
|
| auto_reload_enabled,
|
| auto_reload_visible_only,
|
| !render_frame->IsHidden()));
|
| +
|
| + render_frame->AddRoutedInterface(
|
| + base::Bind(&NetErrorHelper::OnNetworkDiagnosticsClientRequest,
|
| + base::Unretained(this)));
|
| }
|
|
|
| NetErrorHelper::~NetErrorHelper() {
|
| @@ -152,8 +157,6 @@ bool NetErrorHelper::OnMessageReceived(const IPC::Message& message) {
|
|
|
| IPC_BEGIN_MESSAGE_MAP(NetErrorHelper, message)
|
| IPC_MESSAGE_HANDLER(ChromeViewMsg_NetErrorInfo, OnNetErrorInfo)
|
| - IPC_MESSAGE_HANDLER(ChromeViewMsg_SetCanShowNetworkDiagnosticsDialog,
|
| - OnSetCanShowNetworkDiagnosticsDialog);
|
| IPC_MESSAGE_HANDLER(ChromeViewMsg_SetNavigationCorrectionInfo,
|
| OnSetNavigationCorrectionInfo);
|
| #if defined(OS_ANDROID)
|
| @@ -185,6 +188,12 @@ bool NetErrorHelper::ShouldSuppressErrorPage(const GURL& url) {
|
| return core_->ShouldSuppressErrorPage(GetFrameType(render_frame()), url);
|
| }
|
|
|
| +mojom::NetworkDiagnostics* NetErrorHelper::GetRemoteNetworkDiagnostics() {
|
| + if (!remote_network_diagnostics_)
|
| + render_frame()->GetRemoteRoutedInterface(&remote_network_diagnostics_);
|
| + return remote_network_diagnostics_.get();
|
| +}
|
| +
|
| void NetErrorHelper::GenerateLocalizedErrorPage(
|
| const blink::WebURLError& error,
|
| bool is_failed_post,
|
| @@ -322,8 +331,7 @@ void NetErrorHelper::LoadPageFromCache(const GURL& page_url) {
|
| }
|
|
|
| void NetErrorHelper::DiagnoseError(const GURL& page_url) {
|
| - render_frame()->Send(new ChromeViewHostMsg_RunNetworkDiagnostics(
|
| - render_frame()->GetRoutingID(), page_url));
|
| + GetRemoteNetworkDiagnostics()->RunNetworkDiagnostics(page_url);
|
| }
|
|
|
| void NetErrorHelper::ShowOfflinePages() {
|
| @@ -341,12 +349,6 @@ void NetErrorHelper::OnNetErrorInfo(int status_num) {
|
| core_->OnNetErrorInfo(static_cast<DnsProbeStatus>(status_num));
|
| }
|
|
|
| -void NetErrorHelper::OnSetCanShowNetworkDiagnosticsDialog(
|
| - bool can_use_local_diagnostics_service) {
|
| - core_->OnSetCanShowNetworkDiagnosticsDialog(
|
| - can_use_local_diagnostics_service);
|
| -}
|
| -
|
| void NetErrorHelper::OnSetNavigationCorrectionInfo(
|
| const GURL& navigation_correction_url,
|
| const std::string& language,
|
| @@ -375,6 +377,16 @@ void NetErrorHelper::OnTrackingRequestComplete(
|
| tracking_fetcher_.reset();
|
| }
|
|
|
| +void NetErrorHelper::OnNetworkDiagnosticsClientRequest(
|
| + mojom::NetworkDiagnosticsClientAssociatedRequest request) {
|
| + DCHECK(!network_diagnostics_client_binding_.is_bound());
|
| + network_diagnostics_client_binding_.Bind(std::move(request));
|
| +}
|
| +
|
| +void NetErrorHelper::SetCanShowNetworkDiagnosticsDialog(bool can_show) {
|
| + core_->OnSetCanShowNetworkDiagnosticsDialog(can_show);
|
| +}
|
| +
|
| #if defined(OS_ANDROID)
|
| void NetErrorHelper::OnSetHasOfflinePages(bool has_offline_pages) {
|
| core_->OnSetHasOfflinePages(has_offline_pages);
|
|
|