1a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)// Copyright 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 51320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccipackage org.chromium.content_public.browser; 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import org.chromium.base.CalledByNative; 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import org.chromium.base.JNINamespace; 91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciimport org.chromium.content_public.common.Referrer; 101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciimport org.chromium.ui.base.PageTransitionTypes; 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)import java.util.Locale; 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import java.util.Map; 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * Holds parameters for NavigationController.LoadUrl. Parameters should match 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * counterparts in NavigationController::LoadURLParams, including default 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * values. 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)@JNINamespace("content") 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)public class LoadUrlParams { 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Should match NavigationController::LoadUrlType exactly. See comments 23010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) // there for proper usage. initializeConstants() checks that the values 24010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) // are correct. 25010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) public static final int LOAD_TYPE_DEFAULT = 0; 26010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) public static final int LOAD_TYPE_BROWSER_INITIATED_HTTP_POST = 1; 27010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) public static final int LOAD_TYPE_DATA = 2; 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Should match NavigationController::UserAgentOverrideOption exactly. 30010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) // See comments there for proper usage. initializeConstants() checks that 31010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) // the values are correct. 32010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) public static final int UA_OVERRIDE_INHERIT = 0; 33010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) public static final int UA_OVERRIDE_FALSE = 1; 34010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) public static final int UA_OVERRIDE_TRUE = 2; 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Fields with counterparts in NavigationController::LoadURLParams. 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Package private so that ContentViewCore.loadUrl can pass them down to 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // native code. Should not be accessed directly anywhere else outside of 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // this class. 40a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) String mUrl; 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int mLoadUrlType; 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int mTransitionType; 43a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) Referrer mReferrer; 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private Map<String, String> mExtraHeaders; 45a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) private String mVerbatimHeaders; 46a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) int mUaOverrideOption; 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) byte[] mPostData; 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) String mBaseUrlForDataUrl; 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) String mVirtualUrlForDataUrl; 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) boolean mCanLoadLocalResources; 51cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) boolean mIsRendererInitiated; 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 53a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) /** 54a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) * Creates an instance with default page transition type. 55a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) * @param url the url to be loaded 56a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) */ 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public LoadUrlParams(String url) { 58a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) this(url, PageTransitionTypes.PAGE_TRANSITION_LINK); 59a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) } 60a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 61a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) /** 62a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) * Creates an instance with the given page transition type. 63a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) * @param url the url to be loaded 64a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) * @param transitionType the PageTransitionType constant corresponding to the load 65a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) */ 66a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) public LoadUrlParams(String url, int transitionType) { 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) mUrl = url; 68a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) mTransitionType = transitionType; 69a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 70a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) // Initialize other fields to defaults matching defaults of the native 71a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) // NavigationController::LoadUrlParams. 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) mLoadUrlType = LOAD_TYPE_DEFAULT; 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) mUaOverrideOption = UA_OVERRIDE_INHERIT; 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) mPostData = null; 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) mBaseUrlForDataUrl = null; 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) mVirtualUrlForDataUrl = null; 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Helper method to create a LoadUrlParams object for data url. 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param data Data to be loaded. 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param mimeType Mime type of the data. 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param isBase64Encoded True if the data is encoded in Base 64 format. 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public static LoadUrlParams createLoadDataParams( 862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) String data, String mimeType, boolean isBase64Encoded) { 872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return createLoadDataParams(data, mimeType, isBase64Encoded, null); 882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /** 912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * Helper method to create a LoadUrlParams object for data url. 922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * @param data Data to be loaded. 932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * @param mimeType Mime type of the data. 942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * @param isBase64Encoded True if the data is encoded in Base 64 format. 952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * @param charset The character set for the data. Pass null if the mime type 962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * does not require a special charset. 972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public static LoadUrlParams createLoadDataParams( 992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) String data, String mimeType, boolean isBase64Encoded, String charset) { 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) StringBuilder dataUrl = new StringBuilder("data:"); 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dataUrl.append(mimeType); 1022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (charset != null && !charset.isEmpty()) { 1032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) dataUrl.append(";charset=" + charset); 1042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (isBase64Encoded) { 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dataUrl.append(";base64"); 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dataUrl.append(","); 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dataUrl.append(data); 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) LoadUrlParams params = new LoadUrlParams(dataUrl.toString()); 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) params.setLoadType(LoadUrlParams.LOAD_TYPE_DATA); 1132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params.setTransitionType(PageTransitionTypes.PAGE_TRANSITION_TYPED); 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return params; 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Helper method to create a LoadUrlParams object for data url with base 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * and virtual url. 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param data Data to be loaded. 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param mimeType Mime type of the data. 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param isBase64Encoded True if the data is encoded in Base 64 format. 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param baseUrl Base url of this data load. Note that for WebView compatibility, 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * baseUrl and historyUrl are ignored if this is a data: url. 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Defaults to about:blank if null. 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param historyUrl History url for this data load. Note that for WebView compatibility, 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * this is ignored if baseUrl is a data: url. Defaults to about:blank 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * if null. 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public static LoadUrlParams createLoadDataParamsWithBaseUrl( 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) String data, String mimeType, boolean isBase64Encoded, 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) String baseUrl, String historyUrl) { 1332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return createLoadDataParamsWithBaseUrl(data, mimeType, isBase64Encoded, 1342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) baseUrl, historyUrl, null); 1352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 1362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /** 1382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * Helper method to create a LoadUrlParams object for data url with base 1392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * and virtual url. 1402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * @param data Data to be loaded. 1412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * @param mimeType Mime type of the data. 1422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * @param isBase64Encoded True if the data is encoded in Base 64 format. 1432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * @param baseUrl Base url of this data load. Note that for WebView compatibility, 1442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * baseUrl and historyUrl are ignored if this is a data: url. 1452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * Defaults to about:blank if null. 1462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * @param historyUrl History url for this data load. Note that for WebView compatibility, 1472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * this is ignored if baseUrl is a data: url. Defaults to about:blank 1482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if null. 1492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * @param charset The character set for the data. Pass null if the mime type 1502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * does not require a special charset. 1512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 1522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public static LoadUrlParams createLoadDataParamsWithBaseUrl( 1532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) String data, String mimeType, boolean isBase64Encoded, 1542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) String baseUrl, String historyUrl, String charset) { 1552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) LoadUrlParams params = createLoadDataParams(data, mimeType, isBase64Encoded, charset); 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // For WebView compatibility, when the base URL has the 'data:' 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // scheme, we treat it as a regular data URL load and skip setting 1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // baseUrl and historyUrl. 1592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // TODO(joth): we should just append baseURL and historyURL here, and move the 1602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // WebView specific transform up to a wrapper factory function in android_webview/. 161a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) if (baseUrl == null || !baseUrl.toLowerCase(Locale.US).startsWith("data:")) { 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) params.setBaseUrlForDataUrl(baseUrl != null ? baseUrl : "about:blank"); 1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) params.setVirtualUrlForDataUrl(historyUrl != null ? historyUrl : "about:blank"); 1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return params; 1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Helper method to create a LoadUrlParams object for an HTTP POST load. 1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param url URL of the load. 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param postData Post data of the load. Can be null. 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public static LoadUrlParams createLoadHttpPostParams( 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) String url, byte[] postData) { 1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) LoadUrlParams params = new LoadUrlParams(url); 1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) params.setLoadType(LOAD_TYPE_BROWSER_INITIATED_HTTP_POST); 1772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) params.setTransitionType(PageTransitionTypes.PAGE_TRANSITION_TYPED); 1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) params.setPostData(postData); 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return params; 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 183a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) * Sets the url. 184a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) */ 185a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) public void setUrl(String url) { 186a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) mUrl = url; 187a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) } 188a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 189a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) /** 1902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * Return the url. 1912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 1922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public String getUrl() { 1932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return mUrl; 1942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 1952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /** 197d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) * Return the base url for a data url, otherwise null. 198d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) */ 199d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) public String getBaseUrl() { 200d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) return mBaseUrlForDataUrl; 201d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) } 202d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 203d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) /** 2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Set load type of this load. Defaults to LOAD_TYPE_DEFAULT. 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param loadType One of LOAD_TYPE static constants above. 2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public void setLoadType(int loadType) { 2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) mLoadUrlType = loadType; 2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Set transition type of this load. Defaults to PAGE_TRANSITION_LINK. 2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param transitionType One of PAGE_TRANSITION static constants in ContentView. 2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public void setTransitionType(int transitionType) { 2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) mTransitionType = transitionType; 2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 2202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * Return the transition type. 2212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 2222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public int getTransitionType() { 2232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return mTransitionType; 2242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 2252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /** 227a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) * @return the referrer of this load 2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 229a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) public void setReferrer(Referrer referrer) { 230a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) mReferrer = referrer; 231a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) } 232a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 233a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) /** 234a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) * Sets the referrer of this load. 235a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) */ 236a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) public Referrer getReferrer() { 237a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) return mReferrer; 2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Set extra headers for this load. 2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param extraHeaders Extra HTTP headers for this load. Note that these 2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * headers will never overwrite existing ones set by Chromium. 2445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 2455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public void setExtraHeaders(Map<String, String> extraHeaders) { 2465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) mExtraHeaders = extraHeaders; 2475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 2505c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu * Return the extra headers as a map. 2515c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu */ 2525c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu public Map<String, String> getExtraHeaders() { 2535c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu return mExtraHeaders; 2545c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu } 2555c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 2565c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu /** 257a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) * Return the extra headers as a single String separated by "\n", or null if no extra header is 258a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) * set. This form is suitable for passing to native 259a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) * NavigationController::LoadUrlParams::extra_headers. This will return the headers set in an 260a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) * exploded form through setExtraHeaders(). Embedders that work with extra headers in opaque 261a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) * collapsed form can use the setVerbatimHeaders() / getVerbatimHeaders() instead. 2625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 2631320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci public String getExtraHeadersString() { 264a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) return getExtraHeadersString("\n", false); 265a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) } 266a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 267a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) /** 268a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) * Return the extra headers as a single String separated by "\r\n", or null if no extra header 269a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) * is set. This form is suitable for passing to native 270a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) * net::HttpRequestHeaders::AddHeadersFromString. 271a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) */ 272a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) public String getExtraHttpRequestHeadersString() { 273a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) return getExtraHeadersString("\r\n", true); 274a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) } 275a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 276a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) private String getExtraHeadersString(String delimiter, boolean addTerminator) { 2775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (mExtraHeaders == null) return null; 2785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) StringBuilder headerBuilder = new StringBuilder(); 2805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for (Map.Entry<String, String> header : mExtraHeaders.entrySet()) { 281a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) if (headerBuilder.length() > 0) headerBuilder.append(delimiter); 2825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Header name should be lower case. 284a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) headerBuilder.append(header.getKey().toLowerCase(Locale.US)); 2855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) headerBuilder.append(":"); 2865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) headerBuilder.append(header.getValue()); 2875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 288a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) if (addTerminator) 289a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) headerBuilder.append(delimiter); 2905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return headerBuilder.toString(); 2925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 2935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 295a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) * Sets the verbatim extra headers string. This is an alternative to storing the headers in 296a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) * a map (setExtraHeaders()) for the embedders that use collapsed headers strings. 297a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) */ 298a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) public void setVerbatimHeaders(String headers) { 299a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) mVerbatimHeaders = headers; 300a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) } 301a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 302a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) /** 303a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) * @return the verbatim extra headers string 304a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) */ 305a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) public String getVerbatimHeaders() { 306a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) return mVerbatimHeaders; 307a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) } 308a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 309a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) /** 310a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) * Set user agent override option of this load. Defaults to UA_OVERRIDE_INHERIT. 311a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) * @param uaOption One of UA_OVERRIDE static constants above. 312a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) */ 313a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) public void setOverrideUserAgent(int uaOption) { 314a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) mUaOverrideOption = uaOption; 315a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) } 316a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 317a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) /** 3181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * Get user agent override option of this load. Defaults to UA_OVERRIDE_INHERIT. 3191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @param uaOption One of UA_OVERRIDE static constants above. 3201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci */ 3211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci public int getUserAgentOverrideOption() { 3221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return mUaOverrideOption; 3231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 3241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 3251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci /** 3265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Set the post data of this load. This field is ignored unless load type is 3275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * LOAD_TYPE_BROWSER_INITIATED_HTTP_POST. 3285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param postData Post data for this http post load. 3295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 3305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public void setPostData(byte[] postData) { 3315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) mPostData = postData; 3325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 3335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 335a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) * @return the data to be sent through POST 336a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) */ 337a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) public byte[] getPostData() { 338a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) return mPostData; 339a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) } 340a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 341a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) /** 3425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Set the base url for data load. It is used both to resolve relative URLs 3435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * and when applying JavaScript's same origin policy. It is ignored unless 3445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * load type is LOAD_TYPE_DATA. 3455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param baseUrl The base url for this data load. 3465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 3475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public void setBaseUrlForDataUrl(String baseUrl) { 3485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) mBaseUrlForDataUrl = baseUrl; 3495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 3505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 3521320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * Get the virtual url for data load. It is the url displayed to the user. 3531320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * It is ignored unless load type is LOAD_TYPE_DATA. 3541320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @return The virtual url for this data load. 3551320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci */ 3561320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci public String getVirtualUrlForDataUrl() { 3571320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return mVirtualUrlForDataUrl; 3581320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 3591320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 3601320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci /** 3615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Set the virtual url for data load. It is the url displayed to the user. 3625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * It is ignored unless load type is LOAD_TYPE_DATA. 3635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param virtualUrl The virtual url for this data load. 3645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 3655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public void setVirtualUrlForDataUrl(String virtualUrl) { 3665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) mVirtualUrlForDataUrl = virtualUrl; 3675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 3685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 3705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Set whether the load should be able to access local resources. This 3715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * defaults to false. 3725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 3735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public void setCanLoadLocalResources(boolean canLoad) { 3745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) mCanLoadLocalResources = canLoad; 3755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 3765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3771320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci /** 3781320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * Get whether the load should be able to access local resources. This 3791320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * defaults to false. 3801320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci */ 3811320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci public boolean getCanLoadLocalResources() { 3821320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return mCanLoadLocalResources; 3831320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 3841320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 3855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public int getLoadUrlType() { 3865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return mLoadUrlType; 3875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 3885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 389cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 390cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @param rendererInitiated Whether or not this load was initiated from a renderer. 391cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 392cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) public void setIsRendererInitiated(boolean rendererInitiated) { 393cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) mIsRendererInitiated = rendererInitiated; 394cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) } 395cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 396cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 397cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @return Whether or not this load was initiated from a renderer or not. 398cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 399cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) public boolean getIsRendererInitiated() { 400cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return mIsRendererInitiated; 401cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) } 402cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 4035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public boolean isBaseUrlDataScheme() { 4045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // If there's no base url set, but this is a data load then 4055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // treat the scheme as data:. 4065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (mBaseUrlForDataUrl == null && mLoadUrlType == LOAD_TYPE_DATA) { 4075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return true; 4085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 4095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return nativeIsDataScheme(mBaseUrlForDataUrl); 4105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 4115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @SuppressWarnings("unused") 4135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @CalledByNative 4145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private static void initializeConstants( 4151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci int loadTypeDefault, 4161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci int loadTypeBrowserInitiatedHttpPost, 4171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci int loadTypeData, 4181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci int uaOverrideInherit, 4191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci int uaOverrideFalse, 4201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci int uaOverrideTrue) { 4211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci assert LOAD_TYPE_DEFAULT == loadTypeDefault; 4221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci assert LOAD_TYPE_BROWSER_INITIATED_HTTP_POST == loadTypeBrowserInitiatedHttpPost; 4231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci assert LOAD_TYPE_DATA == loadTypeData; 4241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci assert UA_OVERRIDE_INHERIT == uaOverrideInherit; 4251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci assert UA_OVERRIDE_FALSE == uaOverrideFalse; 4261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci assert UA_OVERRIDE_TRUE == uaOverrideTrue; 4275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 4285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 4305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Parses |url| as a GURL on the native side, and 4315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * returns true if it's scheme is data:. 4325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 4335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private static native boolean nativeIsDataScheme(String url); 4345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 435