Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1847)

Unified Diff: content/browser/android/web_contents_observer_proxy.cc

Issue 2642303002: PlzNavigate: Chrome UI changes for new methods of WebContentsObserver (Closed)
Patch Set: isFragmentNavigation Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/android/web_contents_observer_proxy.cc
diff --git a/content/browser/android/web_contents_observer_proxy.cc b/content/browser/android/web_contents_observer_proxy.cc
index bc068304e2716d0a6de2ce45d4bb99e0aab49275..74aef9ae78eb0cfc4ddbd056a5409b7f085a2b76 100644
--- a/content/browser/android/web_contents_observer_proxy.cc
+++ b/content/browser/android/web_contents_observer_proxy.cc
@@ -104,71 +104,14 @@ void WebContentsObserverProxy::DidStopLoading() {
Java_WebContentsObserverProxy_didStopLoading(env, obj, jstring_url);
}
-void WebContentsObserverProxy::DidFailProvisionalLoad(
- RenderFrameHost* render_frame_host,
- const GURL& validated_url,
- int error_code,
- const base::string16& error_description,
- bool was_ignored_by_handler) {
- DidFailLoadInternal(true, !render_frame_host->GetParent(), error_code,
- error_description, validated_url, was_ignored_by_handler);
-}
-
void WebContentsObserverProxy::DidFailLoad(
RenderFrameHost* render_frame_host,
const GURL& validated_url,
int error_code,
const base::string16& error_description,
bool was_ignored_by_handler) {
- DidFailLoadInternal(false, !render_frame_host->GetParent(), error_code,
- error_description, validated_url, was_ignored_by_handler);
-}
-
-void WebContentsObserverProxy::DidNavigateMainFrame(
- const LoadCommittedDetails& details,
- const FrameNavigateParams& params) {
- JNIEnv* env = AttachCurrentThread();
- ScopedJavaLocalRef<jobject> obj(java_observer_);
- ScopedJavaLocalRef<jstring> jstring_url(
- ConvertUTF8ToJavaString(env, params.url.spec()));
- ScopedJavaLocalRef<jstring> jstring_base_url(
- ConvertUTF8ToJavaString(env, params.base_url.spec()));
-
- // See http://crbug.com/251330 for why it's determined this way.
- url::Replacements<char> replacements;
- replacements.ClearRef();
- bool urls_same_ignoring_fragment =
- params.url.ReplaceComponents(replacements) ==
- details.previous_url.ReplaceComponents(replacements);
-
- // is_fragment_navigation is indicative of the intent of this variable.
- // However, there isn't sufficient information here to determine whether this
- // is actually a fragment navigation, or a history API navigation to a URL
- // that would also be valid for a fragment navigation.
- bool is_fragment_navigation =
- urls_same_ignoring_fragment && details.is_in_page;
-
- Java_WebContentsObserverProxy_didNavigateMainFrame(
- env, obj, jstring_url, jstring_base_url,
- details.is_navigation_to_different_page(), is_fragment_navigation,
- details.http_status_code);
-}
-
-void WebContentsObserverProxy::DidNavigateAnyFrame(
- RenderFrameHost* render_frame_host,
- const LoadCommittedDetails& details,
- const FrameNavigateParams& params) {
- JNIEnv* env = AttachCurrentThread();
- ScopedJavaLocalRef<jobject> obj(java_observer_);
- ScopedJavaLocalRef<jstring> jstring_url(
- ConvertUTF8ToJavaString(env, params.url.spec()));
- ScopedJavaLocalRef<jstring> jstring_base_url(
- ConvertUTF8ToJavaString(env, params.base_url.spec()));
- jboolean jboolean_is_reload = ui::PageTransitionCoreTypeIs(
- params.transition, ui::PAGE_TRANSITION_RELOAD);
-
- Java_WebContentsObserverProxy_didNavigateAnyFrame(
- env, obj, jstring_url, jstring_base_url, jboolean_is_reload);
+ DidFailLoadInternal(!render_frame_host->GetParent(), error_code,
Ted C 2017/01/31 18:57:48 let's delete DidFailLoadInternal and inline it her
shaktisahu 2017/02/03 06:56:17 Done.
+ error_description, validated_url);
}
void WebContentsObserverProxy::DocumentAvailableInMainFrame() {
@@ -177,37 +120,6 @@ void WebContentsObserverProxy::DocumentAvailableInMainFrame() {
Java_WebContentsObserverProxy_documentAvailableInMainFrame(env, obj);
}
-void WebContentsObserverProxy::DidStartProvisionalLoadForFrame(
- RenderFrameHost* render_frame_host,
- const GURL& validated_url,
- bool is_error_page) {
- JNIEnv* env = AttachCurrentThread();
- ScopedJavaLocalRef<jobject> obj(java_observer_);
- ScopedJavaLocalRef<jstring> jstring_url(
- ConvertUTF8ToJavaString(env, validated_url.spec()));
- // TODO(dcheng): Does Java really need the parent frame ID? It doesn't appear
- // to be used at all, and it just adds complexity here.
- Java_WebContentsObserverProxy_didStartProvisionalLoadForFrame(
- env, obj, render_frame_host->GetRoutingID(),
- render_frame_host->GetParent()
- ? render_frame_host->GetParent()->GetRoutingID()
- : -1,
- !render_frame_host->GetParent(), jstring_url, is_error_page);
-}
-
-void WebContentsObserverProxy::DidCommitProvisionalLoadForFrame(
- RenderFrameHost* render_frame_host,
- const GURL& url,
- ui::PageTransition transition_type) {
- JNIEnv* env = AttachCurrentThread();
- ScopedJavaLocalRef<jobject> obj(java_observer_);
- ScopedJavaLocalRef<jstring> jstring_url(
- ConvertUTF8ToJavaString(env, url.spec()));
- Java_WebContentsObserverProxy_didCommitProvisionalLoadForFrame(
- env, obj, render_frame_host->GetRoutingID(),
- !render_frame_host->GetParent(), jstring_url, transition_type);
-}
-
void WebContentsObserverProxy::DidStartNavigation(
NavigationHandle* navigation_handle) {
JNIEnv* env = AttachCurrentThread();
@@ -226,13 +138,29 @@ void WebContentsObserverProxy::DidFinishNavigation(
ScopedJavaLocalRef<jstring> jstring_url(
ConvertUTF8ToJavaString(env, navigation_handle->GetURL().spec()));
+ CR_DEFINE_STATIC_LOCAL(GURL, last_committed_url, (GURL()));
Ted C 2017/01/31 18:57:48 Hmm...I'd ask clamy@ or jam@ whether there is a wa
shaktisahu 2017/02/03 06:56:17 I checked with jam@ and they will be adding a gett
+
+ url::Replacements<char> replacements;
+ replacements.ClearRef();
+ bool urls_same_ignoring_fragment =
+ navigation_handle->GetURL().ReplaceComponents(replacements) ==
+ last_committed_url.ReplaceComponents(replacements);
+
+ last_committed_url = navigation_handle->GetURL();
+
+ bool is_fragment_navigation =
+ urls_same_ignoring_fragment && navigation_handle->IsSamePage();
shaktisahu 2017/01/31 01:57:53 This is the only param so far that didn't come fro
Ted C 2017/01/31 18:57:48 As far as I can tell, this seems to only be used i
+
Java_WebContentsObserverProxy_didFinishNavigation(
env, obj, jstring_url, navigation_handle->IsInMainFrame(),
navigation_handle->IsErrorPage(), navigation_handle->HasCommitted(),
- navigation_handle->IsSamePage(),
+ navigation_handle->IsSamePage(), is_fragment_navigation,
navigation_handle->HasCommitted() ? navigation_handle->GetPageTransition()
: -1,
- navigation_handle->GetNetErrorCode());
+ navigation_handle->GetNetErrorCode(),
+ navigation_handle->GetResponseHeaders()
+ ? navigation_handle->GetResponseHeaders()->response_code()
+ : 200);
shaktisahu 2017/01/31 01:57:53 May be we need a better default value other than 2
Ted C 2017/01/31 18:57:48 I think we likely want a unset value here much lik
shaktisahu 2017/02/03 06:56:17 The test fails only for Nexus 5 whenever the devic
Ted C 2017/02/08 05:31:15 File a bug, and put a TODO above this line with a
}
void WebContentsObserverProxy::DidFinishLoad(RenderFrameHost* render_frame_host,
@@ -285,12 +213,10 @@ void WebContentsObserverProxy::DidChangeThemeColor(SkColor color) {
}
void WebContentsObserverProxy::DidFailLoadInternal(
- bool is_provisional_load,
bool is_main_frame,
int error_code,
const base::string16& description,
- const GURL& url,
- bool was_ignored_by_handler) {
+ const GURL& url) {
JNIEnv* env = AttachCurrentThread();
ScopedJavaLocalRef<jobject> obj(java_observer_);
ScopedJavaLocalRef<jstring> jstring_error_description(
@@ -298,9 +224,9 @@ void WebContentsObserverProxy::DidFailLoadInternal(
ScopedJavaLocalRef<jstring> jstring_url(
ConvertUTF8ToJavaString(env, url.spec()));
- Java_WebContentsObserverProxy_didFailLoad(
- env, obj, is_provisional_load, is_main_frame, error_code,
- jstring_error_description, jstring_url, was_ignored_by_handler);
+ Java_WebContentsObserverProxy_didFailLoad(env, obj, is_main_frame, error_code,
+ jstring_error_description,
+ jstring_url);
}
void WebContentsObserverProxy::DidFirstVisuallyNonEmptyPaint() {
@@ -331,18 +257,6 @@ void WebContentsObserverProxy::TitleWasSet(NavigationEntry* entry,
Java_WebContentsObserverProxy_titleWasSet(env, obj, jstring_title);
}
-void WebContentsObserverProxy::DidStartNavigationToPendingEntry(
- const GURL& url,
- ReloadType reload_type) {
- JNIEnv* env = AttachCurrentThread();
- ScopedJavaLocalRef<jobject> obj(java_observer_);
- ScopedJavaLocalRef<jstring> jstring_url(
- ConvertUTF8ToJavaString(env, url.spec()));
-
- Java_WebContentsObserverProxy_didStartNavigationToPendingEntry(env, obj,
- jstring_url);
-}
-
void WebContentsObserverProxy::SetToBaseURLForDataURLIfNeeded(
std::string* url) {
NavigationEntry* entry =

Powered by Google App Engine
This is Rietveld 408576698