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> |
| 8 |
7 #include "base/android/jni_android.h" | 9 #include "base/android/jni_android.h" |
8 #include "base/android/jni_array.h" | 10 #include "base/android/jni_array.h" |
9 #include "base/android/jni_string.h" | 11 #include "base/android/jni_string.h" |
10 #include "base/metrics/histogram.h" | 12 #include "base/metrics/histogram.h" |
11 #include "base/trace_event/trace_event.h" | 13 #include "base/trace_event/trace_event.h" |
12 #include "cc/layers/layer.h" | 14 #include "cc/layers/layer.h" |
13 #include "chrome/browser/android/compositor/tab_content_manager.h" | 15 #include "chrome/browser/android/compositor/tab_content_manager.h" |
14 #include "chrome/browser/android/metrics/uma_utils.h" | 16 #include "chrome/browser/android/metrics/uma_utils.h" |
15 #include "chrome/browser/android/offline_pages/offline_page_model_factory.h" | 17 #include "chrome/browser/android/offline_pages/offline_page_model_factory.h" |
16 #include "chrome/browser/android/offline_pages/offline_page_utils.h" | 18 #include "chrome/browser/android/offline_pages/offline_page_utils.h" |
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
217 JNIEnv* env = AttachCurrentThread(); | 219 JNIEnv* env = AttachCurrentThread(); |
218 ScopedJavaLocalRef<jobject> jobj = weak_java_tab_.get(env); | 220 ScopedJavaLocalRef<jobject> jobj = weak_java_tab_.get(env); |
219 ScopedJavaLocalRef<jstring> jurl(ConvertUTF8ToJavaString(env, url.spec())); | 221 ScopedJavaLocalRef<jstring> jurl(ConvertUTF8ToJavaString(env, url.spec())); |
220 ScopedJavaLocalRef<jstring> jheaders( | 222 ScopedJavaLocalRef<jstring> jheaders( |
221 ConvertUTF8ToJavaString(env, params->extra_headers)); | 223 ConvertUTF8ToJavaString(env, params->extra_headers)); |
222 ScopedJavaLocalRef<jbyteArray> jpost_data; | 224 ScopedJavaLocalRef<jbyteArray> jpost_data; |
223 if (params->uses_post && | 225 if (params->uses_post && |
224 params->browser_initiated_post_data.get() && | 226 params->browser_initiated_post_data.get() && |
225 params->browser_initiated_post_data.get()->size()) { | 227 params->browser_initiated_post_data.get()->size()) { |
226 jpost_data = ToJavaByteArray( | 228 jpost_data = ToJavaByteArray( |
227 env, | 229 env, reinterpret_cast<const uint8_t*>( |
228 reinterpret_cast<const uint8*>( | 230 params->browser_initiated_post_data.get()->front()), |
229 params->browser_initiated_post_data.get()->front()), | |
230 params->browser_initiated_post_data.get()->size()); | 231 params->browser_initiated_post_data.get()->size()); |
231 } | 232 } |
232 Java_Tab_openNewTab(env, | 233 Java_Tab_openNewTab(env, |
233 jobj.obj(), | 234 jobj.obj(), |
234 jurl.obj(), | 235 jurl.obj(), |
235 jheaders.obj(), | 236 jheaders.obj(), |
236 jpost_data.obj(), | 237 jpost_data.obj(), |
237 disposition, | 238 disposition, |
238 params->created_with_opener, | 239 params->created_with_opener, |
239 params->is_renderer_initiated); | 240 params->is_renderer_initiated); |
(...skipping 349 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
589 | 590 |
590 content::NavigationController::LoadURLParams load_params(fixed_url); | 591 content::NavigationController::LoadURLParams load_params(fixed_url); |
591 if (j_extra_headers) { | 592 if (j_extra_headers) { |
592 load_params.extra_headers = base::android::ConvertJavaStringToUTF8( | 593 load_params.extra_headers = base::android::ConvertJavaStringToUTF8( |
593 env, | 594 env, |
594 j_extra_headers); | 595 j_extra_headers); |
595 } | 596 } |
596 if (j_post_data) { | 597 if (j_post_data) { |
597 load_params.load_type = | 598 load_params.load_type = |
598 content::NavigationController::LOAD_TYPE_BROWSER_INITIATED_HTTP_POST; | 599 content::NavigationController::LOAD_TYPE_BROWSER_INITIATED_HTTP_POST; |
599 std::vector<uint8> post_data; | 600 std::vector<uint8_t> post_data; |
600 base::android::JavaByteArrayToByteVector(env, j_post_data, &post_data); | 601 base::android::JavaByteArrayToByteVector(env, j_post_data, &post_data); |
601 load_params.browser_initiated_post_data = | 602 load_params.browser_initiated_post_data = |
602 base::RefCountedBytes::TakeVector(&post_data); | 603 base::RefCountedBytes::TakeVector(&post_data); |
603 } | 604 } |
604 load_params.transition_type = | 605 load_params.transition_type = |
605 ui::PageTransitionFromInt(page_transition); | 606 ui::PageTransitionFromInt(page_transition); |
606 if (j_referrer_url) { | 607 if (j_referrer_url) { |
607 load_params.referrer = content::Referrer( | 608 load_params.referrer = content::Referrer( |
608 GURL(base::android::ConvertJavaStringToUTF8(env, j_referrer_url)), | 609 GURL(base::android::ConvertJavaStringToUTF8(env, j_referrer_url)), |
609 static_cast<blink::WebReferrerPolicy>(referrer_policy)); | 610 static_cast<blink::WebReferrerPolicy>(referrer_policy)); |
(...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
936 static void Init(JNIEnv* env, const JavaParamRef<jobject>& obj) { | 937 static void Init(JNIEnv* env, const JavaParamRef<jobject>& obj) { |
937 TRACE_EVENT0("native", "TabAndroid::Init"); | 938 TRACE_EVENT0("native", "TabAndroid::Init"); |
938 // This will automatically bind to the Java object and pass ownership there. | 939 // This will automatically bind to the Java object and pass ownership there. |
939 new TabAndroid(env, obj); | 940 new TabAndroid(env, obj); |
940 } | 941 } |
941 | 942 |
942 // static | 943 // static |
943 bool TabAndroid::RegisterTabAndroid(JNIEnv* env) { | 944 bool TabAndroid::RegisterTabAndroid(JNIEnv* env) { |
944 return RegisterNativesImpl(env); | 945 return RegisterNativesImpl(env); |
945 } | 946 } |
OLD | NEW |