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

Side by Side Diff: components/web_contents_delegate_android/web_contents_delegate_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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 "components/web_contents_delegate_android/web_contents_delegate_android .h" 5 #include "components/web_contents_delegate_android/web_contents_delegate_android .h"
6 6
7 #include <android/keycodes.h> 7 #include <android/keycodes.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 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 return WebContentsDelegate::OpenURLFromTab(source, params); 83 return WebContentsDelegate::OpenURLFromTab(source, params);
84 84
85 if (disposition == NEW_FOREGROUND_TAB || 85 if (disposition == NEW_FOREGROUND_TAB ||
86 disposition == NEW_BACKGROUND_TAB || 86 disposition == NEW_BACKGROUND_TAB ||
87 disposition == OFF_THE_RECORD) { 87 disposition == OFF_THE_RECORD) {
88 JNIEnv* env = AttachCurrentThread(); 88 JNIEnv* env = AttachCurrentThread();
89 ScopedJavaLocalRef<jstring> java_url = 89 ScopedJavaLocalRef<jstring> java_url =
90 ConvertUTF8ToJavaString(env, url.spec()); 90 ConvertUTF8ToJavaString(env, url.spec());
91 ScopedJavaLocalRef<jstring> extra_headers = 91 ScopedJavaLocalRef<jstring> extra_headers =
92 ConvertUTF8ToJavaString(env, params.extra_headers); 92 ConvertUTF8ToJavaString(env, params.extra_headers);
93 ScopedJavaLocalRef<jbyteArray> post_data; 93 ScopedJavaLocalRef<jobject> post_data;
94 if (params.uses_post && 94 if (params.uses_post && params.post_data)
95 params.browser_initiated_post_data.get() && 95 post_data = params.post_data->ToJavaObject(env);
96 params.browser_initiated_post_data.get()->size()) {
97 post_data = base::android::ToJavaByteArray(
98 env, params.browser_initiated_post_data.get()->front_as<uint8_t>(),
99 params.browser_initiated_post_data.get()->size());
100 }
101 Java_WebContentsDelegateAndroid_openNewTab(env, 96 Java_WebContentsDelegateAndroid_openNewTab(env,
102 obj.obj(), 97 obj.obj(),
103 java_url.obj(), 98 java_url.obj(),
104 extra_headers.obj(), 99 extra_headers.obj(),
105 post_data.obj(), 100 post_data.obj(),
106 disposition, 101 disposition,
107 params.is_renderer_initiated); 102 params.is_renderer_initiated);
108 return NULL; 103 return NULL;
109 } 104 }
110 105
111 // content::OpenURLParams -> content::NavigationController::LoadURLParams 106 // content::OpenURLParams -> content::NavigationController::LoadURLParams
112 content::NavigationController::LoadURLParams load_params(url); 107 content::NavigationController::LoadURLParams load_params(url);
113 load_params.referrer = params.referrer; 108 load_params.referrer = params.referrer;
114 load_params.frame_tree_node_id = params.frame_tree_node_id; 109 load_params.frame_tree_node_id = params.frame_tree_node_id;
115 load_params.redirect_chain = params.redirect_chain; 110 load_params.redirect_chain = params.redirect_chain;
116 load_params.transition_type = params.transition; 111 load_params.transition_type = params.transition;
117 load_params.extra_headers = params.extra_headers; 112 load_params.extra_headers = params.extra_headers;
118 load_params.should_replace_current_entry = 113 load_params.should_replace_current_entry =
119 params.should_replace_current_entry; 114 params.should_replace_current_entry;
120 load_params.is_renderer_initiated = params.is_renderer_initiated; 115 load_params.is_renderer_initiated = params.is_renderer_initiated;
121 116
122 // Only allows the browser-initiated navigation to use POST. 117 if (params.uses_post) {
123 if (params.uses_post && !params.is_renderer_initiated) { 118 load_params.load_type = content::NavigationController::LOAD_TYPE_HTTP_POST;
124 load_params.load_type = 119 load_params.post_data = params.post_data;
125 content::NavigationController::LOAD_TYPE_BROWSER_INITIATED_HTTP_POST;
126 load_params.browser_initiated_post_data =
127 params.browser_initiated_post_data;
128 } 120 }
129 121
130 source->GetController().LoadURLWithParams(load_params); 122 source->GetController().LoadURLWithParams(load_params);
131 123
132 return source; 124 return source;
133 } 125 }
134 126
135 void WebContentsDelegateAndroid::NavigationStateChanged( 127 void WebContentsDelegateAndroid::NavigationStateChanged(
136 WebContents* source, content::InvalidateTypes changed_flags) { 128 WebContents* source, content::InvalidateTypes changed_flags) {
137 JNIEnv* env = AttachCurrentThread(); 129 JNIEnv* env = AttachCurrentThread();
(...skipping 299 matching lines...) Expand 10 before | Expand all | Expand 10 after
437 // Native JNI methods 429 // Native JNI methods
438 // ---------------------------------------------------------------------------- 430 // ----------------------------------------------------------------------------
439 431
440 // Register native methods 432 // Register native methods
441 433
442 bool RegisterWebContentsDelegateAndroid(JNIEnv* env) { 434 bool RegisterWebContentsDelegateAndroid(JNIEnv* env) {
443 return RegisterNativesImpl(env); 435 return RegisterNativesImpl(env);
444 } 436 }
445 437
446 } // namespace web_contents_delegate_android 438 } // namespace web_contents_delegate_android
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698