OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 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/tab_android.h" | 5 #include "chrome/browser/android/tab_android.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include "base/android/jni_android.h" | 9 #include "base/android/jni_android.h" |
10 #include "base/android/jni_array.h" | 10 #include "base/android/jni_array.h" |
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
216 disposition == NEW_FOREGROUND_TAB || | 216 disposition == NEW_FOREGROUND_TAB || |
217 disposition == NEW_BACKGROUND_TAB || | 217 disposition == NEW_BACKGROUND_TAB || |
218 disposition == NEW_WINDOW || | 218 disposition == NEW_WINDOW || |
219 disposition == OFF_THE_RECORD) { | 219 disposition == OFF_THE_RECORD) { |
220 JNIEnv* env = AttachCurrentThread(); | 220 JNIEnv* env = AttachCurrentThread(); |
221 ScopedJavaLocalRef<jobject> jobj = weak_java_tab_.get(env); | 221 ScopedJavaLocalRef<jobject> jobj = weak_java_tab_.get(env); |
222 ScopedJavaLocalRef<jstring> jurl(ConvertUTF8ToJavaString(env, url.spec())); | 222 ScopedJavaLocalRef<jstring> jurl(ConvertUTF8ToJavaString(env, url.spec())); |
223 ScopedJavaLocalRef<jstring> jheaders( | 223 ScopedJavaLocalRef<jstring> jheaders( |
224 ConvertUTF8ToJavaString(env, params->extra_headers)); | 224 ConvertUTF8ToJavaString(env, params->extra_headers)); |
225 ScopedJavaLocalRef<jbyteArray> jpost_data; | 225 ScopedJavaLocalRef<jbyteArray> jpost_data; |
226 if (params->uses_post && | 226 LOG(ERROR) << "LUKASZA: TabAndroid::HandlePopupNavigation" |
227 params->browser_initiated_post_data.get() && | 227 << ": uses_post=" << static_cast<bool>(params->uses_post) |
228 params->browser_initiated_post_data.get()->size()) { | 228 << ": post_data=" << static_cast<bool>(params->post_data); |
229 jpost_data = ToJavaByteArray( | 229 if (params->uses_post && params->post_data) { |
230 env, reinterpret_cast<const uint8_t*>( | 230 CHECK(false); |
231 params->browser_initiated_post_data.get()->front()), | 231 jpost_data = params->post_data->ToJavaByteArray(env); |
232 params->browser_initiated_post_data.get()->size()); | |
233 } | 232 } |
234 Java_Tab_openNewTab(env, | 233 Java_Tab_openNewTab(env, |
235 jobj.obj(), | 234 jobj.obj(), |
236 jurl.obj(), | 235 jurl.obj(), |
237 jheaders.obj(), | 236 jheaders.obj(), |
238 jpost_data.obj(), | 237 jpost_data.obj(), |
239 disposition, | 238 disposition, |
240 params->created_with_opener, | 239 params->created_with_opener, |
241 params->is_renderer_initiated); | 240 params->is_renderer_initiated); |
242 } else { | 241 } else { |
(...skipping 337 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
580 } | 579 } |
581 | 580 |
582 content::NavigationController::LoadURLParams load_params(fixed_url); | 581 content::NavigationController::LoadURLParams load_params(fixed_url); |
583 if (j_extra_headers) { | 582 if (j_extra_headers) { |
584 load_params.extra_headers = base::android::ConvertJavaStringToUTF8( | 583 load_params.extra_headers = base::android::ConvertJavaStringToUTF8( |
585 env, | 584 env, |
586 j_extra_headers); | 585 j_extra_headers); |
587 } | 586 } |
588 if (j_post_data) { | 587 if (j_post_data) { |
589 load_params.load_type = | 588 load_params.load_type = |
590 content::NavigationController::LOAD_TYPE_BROWSER_INITIATED_HTTP_POST; | 589 content::NavigationController::LOAD_TYPE_HTTP_POST; |
591 std::vector<uint8_t> post_data; | 590 std::vector<uint8_t> post_data; |
592 base::android::JavaByteArrayToByteVector(env, j_post_data, &post_data); | 591 base::android::JavaByteArrayToByteVector(env, j_post_data, &post_data); |
593 load_params.browser_initiated_post_data = | 592 load_params.post_data = content::ResourceRequestBody::CreateFromBytes( |
594 base::RefCountedBytes::TakeVector(&post_data); | 593 reinterpret_cast<const char*>(post_data.data()), post_data.size()); |
595 } | 594 } |
596 load_params.transition_type = | 595 load_params.transition_type = |
597 ui::PageTransitionFromInt(page_transition); | 596 ui::PageTransitionFromInt(page_transition); |
598 if (j_referrer_url) { | 597 if (j_referrer_url) { |
599 load_params.referrer = content::Referrer( | 598 load_params.referrer = content::Referrer( |
600 GURL(base::android::ConvertJavaStringToUTF8(env, j_referrer_url)), | 599 GURL(base::android::ConvertJavaStringToUTF8(env, j_referrer_url)), |
601 static_cast<blink::WebReferrerPolicy>(referrer_policy)); | 600 static_cast<blink::WebReferrerPolicy>(referrer_policy)); |
602 } | 601 } |
603 const base::string16 search_terms = | 602 const base::string16 search_terms = |
604 search::ExtractSearchTermsFromURL(GetProfile(), gurl); | 603 search::ExtractSearchTermsFromURL(GetProfile(), gurl); |
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
910 static void Init(JNIEnv* env, const JavaParamRef<jobject>& obj) { | 909 static void Init(JNIEnv* env, const JavaParamRef<jobject>& obj) { |
911 TRACE_EVENT0("native", "TabAndroid::Init"); | 910 TRACE_EVENT0("native", "TabAndroid::Init"); |
912 // This will automatically bind to the Java object and pass ownership there. | 911 // This will automatically bind to the Java object and pass ownership there. |
913 new TabAndroid(env, obj); | 912 new TabAndroid(env, obj); |
914 } | 913 } |
915 | 914 |
916 // static | 915 // static |
917 bool TabAndroid::RegisterTabAndroid(JNIEnv* env) { | 916 bool TabAndroid::RegisterTabAndroid(JNIEnv* env) { |
918 return RegisterNativesImpl(env); | 917 return RegisterNativesImpl(env); |
919 } | 918 } |
OLD | NEW |