Chromium Code Reviews| Index: chrome/browser/android/chrome_web_contents_delegate_android.cc |
| diff --git a/chrome/browser/android/chrome_web_contents_delegate_android.cc b/chrome/browser/android/chrome_web_contents_delegate_android.cc |
| index 038a27467b9ea005d6f39a9f75e796aebcea2c0c..9362fe98f04a9ba70ea1a98c77e907f28a9ad796 100644 |
| --- a/chrome/browser/android/chrome_web_contents_delegate_android.cc |
| +++ b/chrome/browser/android/chrome_web_contents_delegate_android.cc |
| @@ -320,7 +320,7 @@ void ChromeWebContentsDelegateAndroid::AddNewContents( |
| JNIEnv* env = AttachCurrentThread(); |
| ScopedJavaLocalRef<jobject> obj = GetJavaDelegate(env); |
| - bool handled = false; |
| + AddWebContentsResult handled = ADD_WEB_CONTENTS_RESULT_STOP_LOAD_AND_DELETE; |
| if (!obj.is_null()) { |
| ScopedJavaLocalRef<jobject> jsource; |
| if (source) |
| @@ -329,20 +329,30 @@ void ChromeWebContentsDelegateAndroid::AddNewContents( |
| if (new_contents) |
| jnew_contents = new_contents->GetJavaWebContents(); |
| - handled = Java_ChromeWebContentsDelegateAndroid_addNewContents( |
| - env, |
| - obj.obj(), |
| - jsource.obj(), |
| - jnew_contents.obj(), |
| - static_cast<jint>(disposition), |
| - NULL, |
| - user_gesture); |
| + handled = static_cast<AddWebContentsResult>( |
| + Java_ChromeWebContentsDelegateAndroid_addNewContents( |
| + env, |
| + obj.obj(), |
| + jsource.obj(), |
| + jnew_contents.obj(), |
| + static_cast<jint>(disposition), |
| + NULL, |
| + user_gesture)); |
| } |
| - if (was_blocked) |
| - *was_blocked = !handled; |
| - if (!handled) |
| - delete new_contents; |
| + switch (handled) { |
| + case ADD_WEB_CONTENTS_RESULT_STOP_LOAD_AND_DELETE: |
| + delete new_contents; |
| + // fall through |
| + case ADD_WEB_CONTENTS_RESULT_STOP_LOAD: |
| + if (was_blocked) |
| + *was_blocked = true; |
| + break; |
| + case ADD_WEB_CONTENTS_RESULT_PROCEED: |
| + if (was_blocked) |
| + *was_blocked = false; |
| + break; |
| + } |
|
gone
2015/01/29 03:11:32
Add a default: here. Also, man this switch hurts
|
| } |
| } // namespace android |