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

Side by Side Diff: content/browser/android/web_contents_observer_android.cc

Issue 281563002: [Android WebView] Filter out error page URL from onPageFinished to un-flake tests (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed AwContentsTest#testEscapingOfErrorPage Created 6 years, 6 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
11 #include "base/android/jni_android.h" 11 #include "base/android/jni_android.h"
12 #include "base/android/jni_string.h" 12 #include "base/android/jni_string.h"
13 #include "base/android/scoped_java_ref.h" 13 #include "base/android/scoped_java_ref.h"
14 #include "content/browser/android/content_view_core_impl.h" 14 #include "content/browser/android/content_view_core_impl.h"
15 #include "content/browser/renderer_host/render_widget_host_impl.h" 15 #include "content/browser/renderer_host/render_widget_host_impl.h"
16 #include "content/browser/web_contents/web_contents_impl.h" 16 #include "content/browser/web_contents/web_contents_impl.h"
17 #include "content/public/browser/navigation_details.h" 17 #include "content/public/browser/navigation_details.h"
18 #include "content/public/browser/navigation_entry.h" 18 #include "content/public/browser/navigation_entry.h"
19 #include "content/public/common/url_constants.h"
19 #include "jni/WebContentsObserverAndroid_jni.h" 20 #include "jni/WebContentsObserverAndroid_jni.h"
20 21
21 using base::android::AttachCurrentThread; 22 using base::android::AttachCurrentThread;
22 using base::android::ScopedJavaLocalRef; 23 using base::android::ScopedJavaLocalRef;
23 using base::android::ConvertUTF8ToJavaString; 24 using base::android::ConvertUTF8ToJavaString;
24 using base::android::ConvertUTF16ToJavaString; 25 using base::android::ConvertUTF16ToJavaString;
25 26
26 namespace content { 27 namespace content {
27 28
28 WebContentsObserverAndroid::WebContentsObserverAndroid( 29 WebContentsObserverAndroid::WebContentsObserverAndroid(
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
208 int64 frame_id, 209 int64 frame_id,
209 const GURL& validated_url, 210 const GURL& validated_url,
210 bool is_main_frame, 211 bool is_main_frame,
211 RenderViewHost* render_view_host) { 212 RenderViewHost* render_view_host) {
212 JNIEnv* env = AttachCurrentThread(); 213 JNIEnv* env = AttachCurrentThread();
213 ScopedJavaLocalRef<jobject> obj(weak_java_observer_.get(env)); 214 ScopedJavaLocalRef<jobject> obj(weak_java_observer_.get(env));
214 if (obj.is_null()) 215 if (obj.is_null())
215 return; 216 return;
216 217
217 std::string url_string = validated_url.spec(); 218 std::string url_string = validated_url.spec();
219 bool is_error_page = content::kUnreachableWebDataURL == url_string;
218 NavigationEntry* entry = 220 NavigationEntry* entry =
219 web_contents()->GetController().GetLastCommittedEntry(); 221 web_contents()->GetController().GetLastCommittedEntry();
220 // Note that GetBaseURLForDataURL is only used by the Android WebView. 222 // Note that GetBaseURLForDataURL is only used by the Android WebView.
221 if (entry && !entry->GetBaseURLForDataURL().is_empty()) 223 if (entry && !entry->GetBaseURLForDataURL().is_empty())
222 url_string = entry->GetBaseURLForDataURL().possibly_invalid_spec(); 224 url_string = entry->GetBaseURLForDataURL().possibly_invalid_spec();
223 225
224 ScopedJavaLocalRef<jstring> jstring_url( 226 ScopedJavaLocalRef<jstring> jstring_url(
225 ConvertUTF8ToJavaString(env, url_string)); 227 ConvertUTF8ToJavaString(env, url_string));
bulach 2014/06/17 00:42:12 hmm.... I'm not quite sure about the approach here
mnaganov (inactive) 2014/06/17 09:52:15 Yes, sounds reasonable. Sorry for not making that
226 Java_WebContentsObserverAndroid_didFinishLoad( 228 Java_WebContentsObserverAndroid_didFinishLoad(env,
227 env, obj.obj(), frame_id, jstring_url.obj(), is_main_frame); 229 obj.obj(),
230 frame_id,
231 jstring_url.obj(),
232 is_main_frame,
233 is_error_page);
228 } 234 }
229 235
230 void WebContentsObserverAndroid::DocumentLoadedInFrame( 236 void WebContentsObserverAndroid::DocumentLoadedInFrame(
231 int64 frame_id, 237 int64 frame_id,
232 RenderViewHost* render_view_host) { 238 RenderViewHost* render_view_host) {
233 JNIEnv* env = AttachCurrentThread(); 239 JNIEnv* env = AttachCurrentThread();
234 ScopedJavaLocalRef<jobject> obj(weak_java_observer_.get(env)); 240 ScopedJavaLocalRef<jobject> obj(weak_java_observer_.get(env));
235 if (obj.is_null()) 241 if (obj.is_null())
236 return; 242 return;
237 Java_WebContentsObserverAndroid_documentLoadedInFrame( 243 Java_WebContentsObserverAndroid_documentLoadedInFrame(
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
292 if (obj.is_null()) 298 if (obj.is_null())
293 return; 299 return;
294 Java_WebContentsObserverAndroid_didFirstVisuallyNonEmptyPaint( 300 Java_WebContentsObserverAndroid_didFirstVisuallyNonEmptyPaint(
295 env, obj.obj()); 301 env, obj.obj());
296 } 302 }
297 303
298 bool RegisterWebContentsObserverAndroid(JNIEnv* env) { 304 bool RegisterWebContentsObserverAndroid(JNIEnv* env) {
299 return RegisterNativesImpl(env); 305 return RegisterNativesImpl(env);
300 } 306 }
301 } // namespace content 307 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698