| 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 | 
|---|