Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(498)

Side by Side Diff: content/browser/frame_host/navigation_controller_android.cc

Issue 2038233002: Using ResourceRequestBody as the type of HTTP body outside of //content. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@make-resource-request-body-public
Patch Set: Rebasing... Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "content/browser/frame_host/navigation_controller_android.h" 5 #include "content/browser/frame_host/navigation_controller_android.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include "base/android/jni_android.h" 9 #include "base/android/jni_android.h"
10 #include "base/android/jni_array.h"
11 #include "base/android/jni_string.h" 10 #include "base/android/jni_string.h"
12 #include "content/browser/frame_host/navigation_controller_impl.h" 11 #include "content/browser/frame_host/navigation_controller_impl.h"
13 #include "content/browser/frame_host/navigation_entry_impl.h" 12 #include "content/browser/frame_host/navigation_entry_impl.h"
14 #include "content/public/browser/browser_context.h" 13 #include "content/public/browser/browser_context.h"
15 #include "content/public/browser/ssl_host_state_delegate.h" 14 #include "content/public/browser/ssl_host_state_delegate.h"
15 #include "content/public/common/resource_request_body.h"
16 #include "jni/NavigationControllerImpl_jni.h" 16 #include "jni/NavigationControllerImpl_jni.h"
17 #include "net/base/data_url.h" 17 #include "net/base/data_url.h"
18 #include "ui/gfx/android/java_bitmap.h" 18 #include "ui/gfx/android/java_bitmap.h"
19 19
20 using base::android::AttachCurrentThread; 20 using base::android::AttachCurrentThread;
21 using base::android::ConvertJavaStringToUTF16; 21 using base::android::ConvertJavaStringToUTF16;
22 using base::android::ConvertJavaStringToUTF8; 22 using base::android::ConvertJavaStringToUTF8;
23 using base::android::ConvertUTF16ToJavaString; 23 using base::android::ConvertUTF16ToJavaString;
24 using base::android::ConvertUTF8ToJavaString; 24 using base::android::ConvertUTF8ToJavaString;
25 namespace { 25 namespace {
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after
195 void NavigationControllerAndroid::LoadUrl( 195 void NavigationControllerAndroid::LoadUrl(
196 JNIEnv* env, 196 JNIEnv* env,
197 const JavaParamRef<jobject>& obj, 197 const JavaParamRef<jobject>& obj,
198 const JavaParamRef<jstring>& url, 198 const JavaParamRef<jstring>& url,
199 jint load_url_type, 199 jint load_url_type,
200 jint transition_type, 200 jint transition_type,
201 const JavaParamRef<jstring>& j_referrer_url, 201 const JavaParamRef<jstring>& j_referrer_url,
202 jint referrer_policy, 202 jint referrer_policy,
203 jint ua_override_option, 203 jint ua_override_option,
204 const JavaParamRef<jstring>& extra_headers, 204 const JavaParamRef<jstring>& extra_headers,
205 const JavaParamRef<jbyteArray>& post_data, 205 const JavaParamRef<jobject>& j_post_data,
206 const JavaParamRef<jstring>& base_url_for_data_url, 206 const JavaParamRef<jstring>& base_url_for_data_url,
207 const JavaParamRef<jstring>& virtual_url_for_data_url, 207 const JavaParamRef<jstring>& virtual_url_for_data_url,
208 const JavaParamRef<jstring>& data_url_as_string, 208 const JavaParamRef<jstring>& data_url_as_string,
209 jboolean can_load_local_resources, 209 jboolean can_load_local_resources,
210 jboolean is_renderer_initiated, 210 jboolean is_renderer_initiated,
211 jboolean should_replace_current_entry) { 211 jboolean should_replace_current_entry) {
212 DCHECK(url); 212 DCHECK(url);
213 NavigationController::LoadURLParams params( 213 NavigationController::LoadURLParams params(
214 GURL(ConvertJavaStringToUTF8(env, url))); 214 GURL(ConvertJavaStringToUTF8(env, url)));
215 215
216 params.load_type = 216 params.load_type =
217 static_cast<NavigationController::LoadURLType>(load_url_type); 217 static_cast<NavigationController::LoadURLType>(load_url_type);
218 params.transition_type = ui::PageTransitionFromInt(transition_type); 218 params.transition_type = ui::PageTransitionFromInt(transition_type);
219 params.override_user_agent = 219 params.override_user_agent =
220 static_cast<NavigationController::UserAgentOverrideOption>( 220 static_cast<NavigationController::UserAgentOverrideOption>(
221 ua_override_option); 221 ua_override_option);
222 params.can_load_local_resources = can_load_local_resources; 222 params.can_load_local_resources = can_load_local_resources;
223 params.is_renderer_initiated = is_renderer_initiated; 223 params.is_renderer_initiated = is_renderer_initiated;
224 params.should_replace_current_entry = should_replace_current_entry; 224 params.should_replace_current_entry = should_replace_current_entry;
225 225
226 if (extra_headers) 226 if (extra_headers)
227 params.extra_headers = ConvertJavaStringToUTF8(env, extra_headers); 227 params.extra_headers = ConvertJavaStringToUTF8(env, extra_headers);
228 228
229 if (post_data) { 229 params.post_data = ResourceRequestBody::FromJavaObject(env, j_post_data);
230 std::vector<uint8_t> http_body_vector;
231 base::android::JavaByteArrayToByteVector(env, post_data, &http_body_vector);
232 params.browser_initiated_post_data =
233 base::RefCountedBytes::TakeVector(&http_body_vector);
234 }
235 230
236 if (base_url_for_data_url) { 231 if (base_url_for_data_url) {
237 params.base_url_for_data_url = 232 params.base_url_for_data_url =
238 GURL(ConvertJavaStringToUTF8(env, base_url_for_data_url)); 233 GURL(ConvertJavaStringToUTF8(env, base_url_for_data_url));
239 } 234 }
240 235
241 if (virtual_url_for_data_url) { 236 if (virtual_url_for_data_url) {
242 params.virtual_url_for_data_url = 237 params.virtual_url_for_data_url =
243 GURL(ConvertJavaStringToUTF8(env, virtual_url_for_data_url)); 238 GURL(ConvertJavaStringToUTF8(env, virtual_url_for_data_url));
244 } 239 }
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after
429 const JavaParamRef<jobject>& obj, 424 const JavaParamRef<jobject>& obj,
430 jlong source_navigation_controller_android, 425 jlong source_navigation_controller_android,
431 jboolean replace_entry) { 426 jboolean replace_entry) {
432 navigation_controller_->CopyStateFromAndPrune( 427 navigation_controller_->CopyStateFromAndPrune(
433 reinterpret_cast<NavigationControllerAndroid*>( 428 reinterpret_cast<NavigationControllerAndroid*>(
434 source_navigation_controller_android)->navigation_controller_, 429 source_navigation_controller_android)->navigation_controller_,
435 replace_entry); 430 replace_entry);
436 } 431 }
437 432
438 } // namespace content 433 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/frame_host/navigation_controller_android.h ('k') | content/browser/frame_host/navigation_controller_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698