Skip to content

Commit c8bf6ed

Browse files
committed
webcontents: replace deprecated navigation observers
1 parent 5d95b54 commit c8bf6ed

6 files changed

Lines changed: 34 additions & 55 deletions

File tree

atom/browser/api/atom_api_web_contents.cc

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
#include "content/public/browser/native_web_keyboard_event.h"
4848
#include "content/public/browser/navigation_details.h"
4949
#include "content/public/browser/navigation_entry.h"
50+
#include "content/public/browser/navigation_handle.h"
5051
#include "content/public/browser/plugin_service.h"
5152
#include "content/public/browser/render_frame_host.h"
5253
#include "content/public/browser/render_process_host.h"
@@ -608,20 +609,6 @@ void WebContents::DidFinishLoad(content::RenderFrameHost* render_frame_host,
608609
Emit("did-finish-load");
609610
}
610611

611-
void WebContents::DidFailProvisionalLoad(
612-
content::RenderFrameHost* render_frame_host,
613-
const GURL& url,
614-
int code,
615-
const base::string16& description,
616-
bool was_ignored_by_handler) {
617-
bool is_main_frame = !render_frame_host->GetParent();
618-
Emit("did-fail-provisional-load", code, description, url, is_main_frame);
619-
620-
// Do not emit "did-fail-load" for canceled requests.
621-
if (code != net::ERR_ABORTED)
622-
Emit("did-fail-load", code, description, url, is_main_frame);
623-
}
624-
625612
void WebContents::DidFailLoad(content::RenderFrameHost* render_frame_host,
626613
const GURL& url,
627614
int error_code,
@@ -665,13 +652,27 @@ void WebContents::DidGetRedirectForResourceRequest(
665652
details.headers.get());
666653
}
667654

668-
void WebContents::DidNavigateMainFrame(
669-
const content::LoadCommittedDetails& details,
670-
const content::FrameNavigateParams& params) {
671-
if (details.is_navigation_to_different_page())
672-
Emit("did-navigate", params.url);
673-
else if (details.is_in_page)
674-
Emit("did-navigate-in-page", params.url);
655+
void WebContents::DidFinishNavigation(
656+
content::NavigationHandle* navigation_handle) {
657+
bool is_main_frame = navigation_handle->IsInMainFrame();
658+
if (navigation_handle->HasCommitted() && !navigation_handle->IsErrorPage()) {
659+
auto url = navigation_handle->GetURL();
660+
bool is_in_page = navigation_handle->IsSamePage();
661+
if (is_main_frame && !is_in_page) {
662+
Emit("did-navigate", url);
663+
} else if (is_in_page) {
664+
Emit("did-navigate-in-page", url);
665+
}
666+
} else {
667+
auto url = navigation_handle->GetURL();
668+
int code = navigation_handle->GetNetErrorCode();
669+
auto description = net::ErrorToShortString(code);
670+
Emit("did-fail-provisional-load", code, description, url, is_main_frame);
671+
672+
// Do not emit "did-fail-load" for canceled requests.
673+
if (code != net::ERR_ABORTED)
674+
Emit("did-fail-load", code, description, url, is_main_frame);
675+
}
675676
}
676677

677678
void WebContents::TitleWasSet(content::NavigationEntry* entry,

atom/browser/api/atom_api_web_contents.h

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -244,21 +244,15 @@ class WebContents : public mate::TrackableObject<WebContents>,
244244
int error_code,
245245
const base::string16& error_description,
246246
bool was_ignored_by_handler) override;
247-
void DidFailProvisionalLoad(content::RenderFrameHost* render_frame_host,
248-
const GURL& validated_url,
249-
int error_code,
250-
const base::string16& error_description,
251-
bool was_ignored_by_handler) override;
252247
void DidStartLoading() override;
253248
void DidStopLoading() override;
254249
void DidGetResourceResponseStart(
255250
const content::ResourceRequestDetails& details) override;
256251
void DidGetRedirectForResourceRequest(
257252
content::RenderFrameHost* render_frame_host,
258253
const content::ResourceRedirectDetails& details) override;
259-
void DidNavigateMainFrame(
260-
const content::LoadCommittedDetails& details,
261-
const content::FrameNavigateParams& params) override;
254+
void DidFinishNavigation(
255+
content::NavigationHandle* navigation_handle) override;
262256
bool OnMessageReceived(const IPC::Message& message) override;
263257
void WebContentsDestroyed() override;
264258
void NavigationEntryCommitted(

atom/browser/web_view_guest_delegate.cc

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
#include "atom/browser/api/atom_api_web_contents.h"
88
#include "atom/common/native_mate_converters/gurl_converter.h"
99
#include "content/public/browser/guest_host.h"
10+
#include "content/public/browser/navigation_handle.h"
1011
#include "content/public/browser/render_frame_host.h"
1112
#include "content/public/browser/render_view_host.h"
1213
#include "content/public/browser/render_widget_host.h"
@@ -95,10 +96,13 @@ void WebViewGuestDelegate::SetSize(const SetSizeParams& params) {
9596
auto_size_enabled_ = enable_auto_size;
9697
}
9798

98-
void WebViewGuestDelegate::DidCommitProvisionalLoadForFrame(
99-
content::RenderFrameHost* render_frame_host,
100-
const GURL& url, ui::PageTransition transition_type) {
101-
api_web_contents_->Emit("load-commit", url, !render_frame_host->GetParent());
99+
void WebViewGuestDelegate::DidFinishNavigation(
100+
content::NavigationHandle* navigation_handle) {
101+
if (navigation_handle->HasCommitted() && !navigation_handle->IsErrorPage()) {
102+
auto is_main_frame = navigation_handle->IsInMainFrame();
103+
auto url = navigation_handle->GetURL();
104+
api_web_contents_->Emit("load-commit", url, is_main_frame);
105+
}
102106
}
103107

104108
void WebViewGuestDelegate::DidAttach(int guest_proxy_routing_id) {

atom/browser/web_view_guest_delegate.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,8 @@ class WebViewGuestDelegate : public content::BrowserPluginGuestDelegate,
4747

4848
protected:
4949
// content::WebContentsObserver:
50-
void DidCommitProvisionalLoadForFrame(
51-
content::RenderFrameHost* render_frame_host,
52-
const GURL& url, ui::PageTransition transition_type) override;
50+
void DidFinishNavigation(
51+
content::NavigationHandle* navigation_handle) override;
5352

5453
// content::BrowserPluginGuestDelegate:
5554
void DidAttach(int guest_proxy_routing_id) final;

atom/renderer/atom_renderer_client.cc

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
#include "atom/renderer/node_array_buffer_bridge.h"
2121
#include "atom/renderer/preferences_manager.h"
2222
#include "base/command_line.h"
23-
#include "base/strings/utf_string_conversions.h"
2423
#include "chrome/renderer/media/chrome_key_systems.h"
2524
#include "chrome/renderer/pepper/pepper_helper.h"
2625
#include "chrome/renderer/printing/print_web_view_helper.h"
@@ -32,7 +31,6 @@
3231
#include "content/public/renderer/render_view.h"
3332
#include "ipc/ipc_message_macros.h"
3433
#include "native_mate/dictionary.h"
35-
#include "net/base/net_errors.h"
3634
#include "third_party/WebKit/public/web/WebCustomElement.h"
3735
#include "third_party/WebKit/public/web/WebDocument.h"
3836
#include "third_party/WebKit/public/web/WebFrameWidget.h"
@@ -322,16 +320,4 @@ void AtomRendererClient::AddKeySystems(
322320
AddChromeKeySystems(key_systems);
323321
}
324322

325-
void AtomRendererClient::GetNavigationErrorStrings(
326-
content::RenderFrame* render_frame,
327-
const blink::WebURLRequest& failed_request,
328-
const blink::WebURLError& error,
329-
std::string* error_html,
330-
base::string16* error_description) {
331-
if (!error_description)
332-
return;
333-
334-
*error_description = base::UTF8ToUTF16(net::ErrorToShortString(error.reason));
335-
}
336-
337323
} // namespace atom

atom/renderer/atom_renderer_client.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,6 @@ class AtomRendererClient : public content::ContentRendererClient {
5858
const std::string& mime_type,
5959
const GURL& original_url) override;
6060
void AddKeySystems(std::vector<media::KeySystemInfo>* key_systems) override;
61-
void GetNavigationErrorStrings(content::RenderFrame* render_frame,
62-
const blink::WebURLRequest& failed_request,
63-
const blink::WebURLError& error,
64-
std::string* error_html,
65-
base::string16* error_description) override;
6661

6762
std::unique_ptr<NodeBindings> node_bindings_;
6863
std::unique_ptr<AtomBindings> atom_bindings_;

0 commit comments

Comments
 (0)