1d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba/* 2d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba * Copyright (C) 2014 The Android Open Source Project 3d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba * 4d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba * Licensed under the Apache License, Version 2.0 (the "License"); 5d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba * you may not use this file except in compliance with the License. 6d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba * You may obtain a copy of the License at 7d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba * 8d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba * http://www.apache.org/licenses/LICENSE-2.0 9d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba * 10d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba * Unless required by applicable law or agreed to in writing, software 11d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba * distributed under the License is distributed on an "AS IS" BASIS, 12d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba * See the License for the specific language governing permissions and 14d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba * limitations under the License. 15d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba */ 16d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba 17d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosibapackage android.webkit; 18d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba 19d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosibaimport android.net.Uri; 20d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba 21d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosibaimport java.io.InputStream; 22d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosibaimport java.util.Map; 23d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba 24d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba/** 25d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba * Encompasses parameters to the {@link WebViewClient#shouldInterceptRequest} method. 26d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba */ 27d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosibapublic interface WebResourceRequest { 28d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba /** 29d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba * Gets the URL for which the resource request was made. 30d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba * 31d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba * @return the URL for which the resource request was made. 32d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba */ 33d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba Uri getUrl(); 34d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba 35d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba /** 36d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba * Gets whether the request was made for the main frame. 37d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba * 38d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba * @return whether the request was made for the main frame. Will be false for iframes, 39d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba * for example. 40d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba */ 41d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba boolean isForMainFrame(); 42d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba 43d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba /** 44288e7de22ef831235a5d7640cd228dfc467b4f19Marcin Kosiba * Gets whether a gesture (such as a click) was associated with the request. 45d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba * 46d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba * @return whether a gesture was associated with the request. 47d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba */ 48100c20c900addf3c9458c697907b80eeeb860fd5Marcin Kosiba boolean hasGesture(); 49100c20c900addf3c9458c697907b80eeeb860fd5Marcin Kosiba 50d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba /** 51d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba * Gets the method associated with the request, for example "GET". 52d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba * 53d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba * @return the method associated with the request. 54d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba */ 55d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba String getMethod(); 56d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba 57d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba /** 58d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba * Gets the headers associated with the request. These are represented as a mapping of header 59d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba * name to header value. 60d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba * 61d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba * @return the headers associated with the request. 62d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba */ 63d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba Map<String, String> getRequestHeaders(); 64d72e7ba1c04b2f7b128c5710607a72867b73bf1cMarcin Kosiba} 65