OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/browser/android/web_contents_observer_android.h" | 5 #include "content/browser/android/web_contents_observer_android.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include <jni.h> | 9 #include <jni.h> |
10 | 10 |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
122 const LoadCommittedDetails& details, | 122 const LoadCommittedDetails& details, |
123 const FrameNavigateParams& params) { | 123 const FrameNavigateParams& params) { |
124 JNIEnv* env = AttachCurrentThread(); | 124 JNIEnv* env = AttachCurrentThread(); |
125 ScopedJavaLocalRef<jobject> obj(weak_java_observer_.get(env)); | 125 ScopedJavaLocalRef<jobject> obj(weak_java_observer_.get(env)); |
126 if (obj.is_null()) | 126 if (obj.is_null()) |
127 return; | 127 return; |
128 ScopedJavaLocalRef<jstring> jstring_url( | 128 ScopedJavaLocalRef<jstring> jstring_url( |
129 ConvertUTF8ToJavaString(env, params.url.spec())); | 129 ConvertUTF8ToJavaString(env, params.url.spec())); |
130 ScopedJavaLocalRef<jstring> jstring_base_url( | 130 ScopedJavaLocalRef<jstring> jstring_base_url( |
131 ConvertUTF8ToJavaString(env, params.base_url.spec())); | 131 ConvertUTF8ToJavaString(env, params.base_url.spec())); |
132 | |
132 // See http://crbug.com/251330 for why it's determined this way. | 133 // See http://crbug.com/251330 for why it's determined this way. |
133 bool in_page_navigation = | 134 url::Replacements<char> replacements; |
134 details.type == NAVIGATION_TYPE_IN_PAGE || details.is_in_page; | 135 replacements.ClearRef(); |
136 bool urls_same_ignoring_fragment = | |
137 params.url.ReplaceComponents(replacements) == | |
138 details.previous_url.ReplaceComponents(replacements); | |
139 | |
140 bool in_page_navigation = urls_same_ignoring_fragment && | |
mkosiba (inactive)
2014/06/03 11:31:08
thanks! I guess we could just call this is_fragmen
| |
141 (details.type == NAVIGATION_TYPE_IN_PAGE || details.is_in_page); | |
135 Java_WebContentsObserverAndroid_didNavigateMainFrame( | 142 Java_WebContentsObserverAndroid_didNavigateMainFrame( |
136 env, obj.obj(), jstring_url.obj(), jstring_base_url.obj(), | 143 env, obj.obj(), jstring_url.obj(), jstring_base_url.obj(), |
137 details.is_navigation_to_different_page(), in_page_navigation); | 144 details.is_navigation_to_different_page(), in_page_navigation); |
138 } | 145 } |
139 | 146 |
140 void WebContentsObserverAndroid::DidNavigateAnyFrame( | 147 void WebContentsObserverAndroid::DidNavigateAnyFrame( |
141 const LoadCommittedDetails& details, | 148 const LoadCommittedDetails& details, |
142 const FrameNavigateParams& params) { | 149 const FrameNavigateParams& params) { |
143 JNIEnv* env = AttachCurrentThread(); | 150 JNIEnv* env = AttachCurrentThread(); |
144 ScopedJavaLocalRef<jobject> obj(weak_java_observer_.get(env)); | 151 ScopedJavaLocalRef<jobject> obj(weak_java_observer_.get(env)); |
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
278 if (obj.is_null()) | 285 if (obj.is_null()) |
279 return; | 286 return; |
280 Java_WebContentsObserverAndroid_didFirstVisuallyNonEmptyPaint( | 287 Java_WebContentsObserverAndroid_didFirstVisuallyNonEmptyPaint( |
281 env, obj.obj()); | 288 env, obj.obj()); |
282 } | 289 } |
283 | 290 |
284 bool RegisterWebContentsObserverAndroid(JNIEnv* env) { | 291 bool RegisterWebContentsObserverAndroid(JNIEnv* env) { |
285 return RegisterNativesImpl(env); | 292 return RegisterNativesImpl(env); |
286 } | 293 } |
287 } // namespace content | 294 } // namespace content |
OLD | NEW |