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 |