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

Side by Side Diff: chrome/browser/android/chrome_web_contents_delegate_android.cc

Issue 883153002: Load web contents after tab is created. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 10 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
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 "chrome/browser/android/chrome_web_contents_delegate_android.h" 5 #include "chrome/browser/android/chrome_web_contents_delegate_android.h"
6 6
7 #include "base/android/jni_android.h" 7 #include "base/android/jni_android.h"
8 #include "base/android/jni_string.h" 8 #include "base/android/jni_string.h"
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "chrome/browser/chrome_notification_types.h" 10 #include "chrome/browser/chrome_notification_types.h"
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after
313 bool* was_blocked) { 313 bool* was_blocked) {
314 // No code for this yet. 314 // No code for this yet.
315 DCHECK_NE(disposition, SAVE_TO_DISK); 315 DCHECK_NE(disposition, SAVE_TO_DISK);
316 // Can't create a new contents for the current tab - invalid case. 316 // Can't create a new contents for the current tab - invalid case.
317 DCHECK_NE(disposition, CURRENT_TAB); 317 DCHECK_NE(disposition, CURRENT_TAB);
318 318
319 TabHelpers::AttachTabHelpers(new_contents); 319 TabHelpers::AttachTabHelpers(new_contents);
320 320
321 JNIEnv* env = AttachCurrentThread(); 321 JNIEnv* env = AttachCurrentThread();
322 ScopedJavaLocalRef<jobject> obj = GetJavaDelegate(env); 322 ScopedJavaLocalRef<jobject> obj = GetJavaDelegate(env);
323 bool handled = false; 323 AddWebContentsResult handled = ADD_WEB_CONTENTS_RESULT_STOP_LOAD_AND_DELETE;
324 if (!obj.is_null()) { 324 if (!obj.is_null()) {
325 ScopedJavaLocalRef<jobject> jsource; 325 ScopedJavaLocalRef<jobject> jsource;
326 if (source) 326 if (source)
327 jsource = source->GetJavaWebContents(); 327 jsource = source->GetJavaWebContents();
328 ScopedJavaLocalRef<jobject> jnew_contents; 328 ScopedJavaLocalRef<jobject> jnew_contents;
329 if (new_contents) 329 if (new_contents)
330 jnew_contents = new_contents->GetJavaWebContents(); 330 jnew_contents = new_contents->GetJavaWebContents();
331 331
332 handled = Java_ChromeWebContentsDelegateAndroid_addNewContents( 332 handled = static_cast<AddWebContentsResult>(
333 env, 333 Java_ChromeWebContentsDelegateAndroid_addNewContents(
334 obj.obj(), 334 env,
335 jsource.obj(), 335 obj.obj(),
336 jnew_contents.obj(), 336 jsource.obj(),
337 static_cast<jint>(disposition), 337 jnew_contents.obj(),
338 NULL, 338 static_cast<jint>(disposition),
339 user_gesture); 339 NULL,
340 user_gesture));
340 } 341 }
341 342
342 if (was_blocked) 343 switch (handled) {
343 *was_blocked = !handled; 344 case ADD_WEB_CONTENTS_RESULT_STOP_LOAD_AND_DELETE:
344 if (!handled) 345 delete new_contents;
345 delete new_contents; 346 // fall through
347 case ADD_WEB_CONTENTS_RESULT_STOP_LOAD:
348 if (was_blocked)
349 *was_blocked = true;
350 break;
351 case ADD_WEB_CONTENTS_RESULT_PROCEED:
352 if (was_blocked)
353 *was_blocked = false;
354 break;
355 }
gone 2015/01/29 03:11:32 Add a default: here. Also, man this switch hurts
346 } 356 }
347 357
348 } // namespace android 358 } // namespace android
349 } // namespace chrome 359 } // namespace chrome
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698