OLD | NEW |
---|---|
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 "base/android/jni_android.h" | 7 #include "base/android/jni_android.h" |
8 #include "base/android/jni_array.h" | 8 #include "base/android/jni_array.h" |
9 #include "base/android/jni_string.h" | 9 #include "base/android/jni_string.h" |
10 #include "content/browser/frame_host/navigation_entry_impl.h" | 10 #include "content/browser/frame_host/navigation_entry_impl.h" |
11 #include "content/public/browser/browser_context.h" | 11 #include "content/public/browser/browser_context.h" |
12 #include "content/public/browser/navigation_controller.h" | 12 #include "content/public/browser/navigation_controller.h" |
13 #include "content/public/browser/ssl_host_state_delegate.h" | 13 #include "content/public/browser/ssl_host_state_delegate.h" |
14 #include "jni/NavigationControllerImpl_jni.h" | 14 #include "jni/NavigationControllerImpl_jni.h" |
15 #include "net/base/data_url.h" | |
15 #include "ui/gfx/android/java_bitmap.h" | 16 #include "ui/gfx/android/java_bitmap.h" |
16 | 17 |
17 using base::android::AttachCurrentThread; | 18 using base::android::AttachCurrentThread; |
18 using base::android::ConvertJavaStringToUTF16; | 19 using base::android::ConvertJavaStringToUTF16; |
19 using base::android::ConvertJavaStringToUTF8; | 20 using base::android::ConvertJavaStringToUTF8; |
20 using base::android::ConvertUTF16ToJavaString; | 21 using base::android::ConvertUTF16ToJavaString; |
21 using base::android::ConvertUTF8ToJavaString; | 22 using base::android::ConvertUTF8ToJavaString; |
22 namespace { | 23 namespace { |
23 | 24 |
24 // static | 25 // static |
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
188 const JavaParamRef<jstring>& url, | 189 const JavaParamRef<jstring>& url, |
189 jint load_url_type, | 190 jint load_url_type, |
190 jint transition_type, | 191 jint transition_type, |
191 const JavaParamRef<jstring>& j_referrer_url, | 192 const JavaParamRef<jstring>& j_referrer_url, |
192 jint referrer_policy, | 193 jint referrer_policy, |
193 jint ua_override_option, | 194 jint ua_override_option, |
194 const JavaParamRef<jstring>& extra_headers, | 195 const JavaParamRef<jstring>& extra_headers, |
195 const JavaParamRef<jbyteArray>& post_data, | 196 const JavaParamRef<jbyteArray>& post_data, |
196 const JavaParamRef<jstring>& base_url_for_data_url, | 197 const JavaParamRef<jstring>& base_url_for_data_url, |
197 const JavaParamRef<jstring>& virtual_url_for_data_url, | 198 const JavaParamRef<jstring>& virtual_url_for_data_url, |
199 const JavaParamRef<jstring>& data_url_as_string, | |
198 jboolean can_load_local_resources, | 200 jboolean can_load_local_resources, |
199 jboolean is_renderer_initiated, | 201 jboolean is_renderer_initiated, |
200 jboolean should_replace_current_entry) { | 202 jboolean should_replace_current_entry) { |
201 DCHECK(url); | 203 DCHECK(url); |
202 NavigationController::LoadURLParams params( | 204 NavigationController::LoadURLParams params( |
203 GURL(ConvertJavaStringToUTF8(env, url))); | 205 GURL(ConvertJavaStringToUTF8(env, url))); |
204 | 206 |
205 params.load_type = | 207 params.load_type = |
206 static_cast<NavigationController::LoadURLType>(load_url_type); | 208 static_cast<NavigationController::LoadURLType>(load_url_type); |
207 params.transition_type = ui::PageTransitionFromInt(transition_type); | 209 params.transition_type = ui::PageTransitionFromInt(transition_type); |
(...skipping 17 matching lines...) Expand all Loading... | |
225 if (base_url_for_data_url) { | 227 if (base_url_for_data_url) { |
226 params.base_url_for_data_url = | 228 params.base_url_for_data_url = |
227 GURL(ConvertJavaStringToUTF8(env, base_url_for_data_url)); | 229 GURL(ConvertJavaStringToUTF8(env, base_url_for_data_url)); |
228 } | 230 } |
229 | 231 |
230 if (virtual_url_for_data_url) { | 232 if (virtual_url_for_data_url) { |
231 params.virtual_url_for_data_url = | 233 params.virtual_url_for_data_url = |
232 GURL(ConvertJavaStringToUTF8(env, virtual_url_for_data_url)); | 234 GURL(ConvertJavaStringToUTF8(env, virtual_url_for_data_url)); |
233 } | 235 } |
234 | 236 |
237 if (data_url_as_string) { | |
238 // Treat |data_url_as_string| as if we were intenting to put it into a GURL | |
Charlie Reis
2015/12/14 20:35:57
nit: intending
mnaganov (inactive)
2015/12/15 18:30:29
Done.
| |
239 // field. Note that kMaxURLChars is only enforced when serializing URLs | |
240 // for IPC. | |
241 GURL data_url = GURL(ConvertJavaStringToUTF8(env, data_url_as_string)); | |
242 DCHECK(data_url.SchemeIs(url::kDataScheme)); | |
243 DCHECK(params.url.SchemeIs(url::kDataScheme)); | |
244 #if DCHECK_IS_ON() | |
245 { | |
246 std::string mime_type, charset, data; | |
247 DCHECK(net::DataURL::Parse(params.url, &mime_type, &charset, &data)); | |
248 DCHECK(data.empty()); | |
249 } | |
250 #endif | |
251 std::string s = data_url.spec(); | |
252 params.data_url_as_string = base::RefCountedString::TakeString(&s); | |
253 } | |
254 | |
235 if (j_referrer_url) { | 255 if (j_referrer_url) { |
236 params.referrer = content::Referrer( | 256 params.referrer = content::Referrer( |
237 GURL(ConvertJavaStringToUTF8(env, j_referrer_url)), | 257 GURL(ConvertJavaStringToUTF8(env, j_referrer_url)), |
238 static_cast<blink::WebReferrerPolicy>(referrer_policy)); | 258 static_cast<blink::WebReferrerPolicy>(referrer_policy)); |
239 } | 259 } |
240 | 260 |
241 navigation_controller_->LoadURLWithParams(params); | 261 navigation_controller_->LoadURLWithParams(params); |
242 } | 262 } |
243 | 263 |
244 void NavigationControllerAndroid::ClearHistory( | 264 void NavigationControllerAndroid::ClearHistory( |
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
399 const JavaParamRef<jobject>& obj, | 419 const JavaParamRef<jobject>& obj, |
400 jlong source_navigation_controller_android, | 420 jlong source_navigation_controller_android, |
401 jboolean replace_entry) { | 421 jboolean replace_entry) { |
402 navigation_controller_->CopyStateFromAndPrune( | 422 navigation_controller_->CopyStateFromAndPrune( |
403 reinterpret_cast<NavigationControllerAndroid*>( | 423 reinterpret_cast<NavigationControllerAndroid*>( |
404 source_navigation_controller_android)->navigation_controller_, | 424 source_navigation_controller_android)->navigation_controller_, |
405 replace_entry); | 425 replace_entry); |
406 } | 426 } |
407 | 427 |
408 } // namespace content | 428 } // namespace content |
OLD | NEW |