Skip to content

Commit ba887db

Browse files
authored
Merge pull request electron#6482 from deepak1556/webcontents_navigation_obs_patch
webcontents: replace deprecated navigation observers
2 parents 21a2fea + c8bf6ed commit ba887db

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"
@@ -603,20 +604,6 @@ void WebContents::DidFinishLoad(content::RenderFrameHost* render_frame_host,
603604
Emit("did-finish-load");
604605
}
605606

606-
void WebContents::DidFailProvisionalLoad(
607-
content::RenderFrameHost* render_frame_host,
608-
const GURL& url,
609-
int code,
610-
const base::string16& description,
611-
bool was_ignored_by_handler) {
612-
bool is_main_frame = !render_frame_host->GetParent();
613-
Emit("did-fail-provisional-load", code, description, url, is_main_frame);
614-
615-
// Do not emit "did-fail-load" for canceled requests.
616-
if (code != net::ERR_ABORTED)
617-
Emit("did-fail-load", code, description, url, is_main_frame);
618-
}
619-
620607
void WebContents::DidFailLoad(content::RenderFrameHost* render_frame_host,
621608
const GURL& url,
622609
int error_code,
@@ -660,13 +647,27 @@ void WebContents::DidGetRedirectForResourceRequest(
660647
details.headers.get());
661648
}
662649

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

672673
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
@@ -245,21 +245,15 @@ class WebContents : public mate::TrackableObject<WebContents>,
245245
int error_code,
246246
const base::string16& error_description,
247247
bool was_ignored_by_handler) override;
248-
void DidFailProvisionalLoad(content::RenderFrameHost* render_frame_host,
249-
const GURL& validated_url,
250-
int error_code,
251-
const base::string16& error_description,
252-
bool was_ignored_by_handler) override;
253248
void DidStartLoading() override;
254249
void DidStopLoading() override;
255250
void DidGetResourceResponseStart(
256251
const content::ResourceRequestDetails& details) override;
257252
void DidGetRedirectForResourceRequest(
258253
content::RenderFrameHost* render_frame_host,
259254
const content::ResourceRedirectDetails& details) override;
260-
void DidNavigateMainFrame(
261-
const content::LoadCommittedDetails& details,
262-
const content::FrameNavigateParams& params) override;
255+
void DidFinishNavigation(
256+
content::NavigationHandle* navigation_handle) override;
263257
bool OnMessageReceived(const IPC::Message& message) override;
264258
void WebContentsDestroyed() override;
265259
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)