174fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon/* 274fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * Copyright (C) 2009 The Android Open Source Project 374fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * 474fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * Licensed under the Apache License, Version 2.0 (the "License"); 574fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * you may not use this file except in compliance with the License. 674fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * You may obtain a copy of the License at 774fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * 874fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * http://www.apache.org/licenses/LICENSE-2.0 974fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * 1074fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * Unless required by applicable law or agreed to in writing, software 1174fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * distributed under the License is distributed on an "AS IS" BASIS, 1274fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1374fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * See the License for the specific language governing permissions and 1474fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * limitations under the License. 1574fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon */ 1674fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon 1774fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixonpackage android.webkit; 1874fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon 1974fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixonimport java.io.InputStream; 2074fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixonimport java.util.Map; 2174fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon 2274fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon/** 2374fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * This class encapsulates the content generated by a plugin. The 2474fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * data itself is meant to be loaded into webkit via the 2574fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * PluginContentLoader class, which needs to be able to construct an 2674fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * HTTP response. For this, it needs a stream with the response body, 2774fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * the length of the body, the response headers, and the response 2874fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * status code. The PluginData class is the container for all these 2974fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * parts. 3074fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * 3174fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * @hide 3274fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * @deprecated This class was intended to be used by Gears. Since Gears was 3374fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * deprecated, so is this class. 3474fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon */ 3574fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon@Deprecated 3674fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixonpublic final class PluginData { 3774fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon /** 3874fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * The content stream. 3974fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon */ 4074fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon private InputStream mStream; 4174fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon /** 4274fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * The content length. 4374fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon */ 4474fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon private long mContentLength; 4574fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon /** 4674fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * The associated HTTP response headers stored as a map of 4774fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * lowercase header name to [ unmodified header name, header value]. 4874fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * TODO: This design was always a hack. Remove (involves updating 4974fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * the Gears C++ side). 5074fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon */ 5174fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon private Map<String, String[]> mHeaders; 5274fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon 5374fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon /** 5474fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * The associated HTTP response code. 5574fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon */ 5674fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon private int mStatusCode; 5774fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon 5874fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon /** 5974fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * Creates a PluginData instance. 6074fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * 6174fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * @param stream The stream that supplies content for the plugin. 6274fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * @param length The length of the plugin content. 6374fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * @param headers The response headers. Map of 6474fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * lowercase header name to [ unmodified header name, header value] 6574fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * @param length The HTTP response status code. 6674fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * 6774fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * @hide 6874fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * @deprecated This class was intended to be used by Gears. Since Gears was 6974fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * deprecated, so is this class. 7074fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon */ 7174fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon @Deprecated 7274fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon public PluginData( 7374fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon InputStream stream, 7474fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon long length, 7574fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon Map<String, String[]> headers, 7674fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon int code) { 7774fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon mStream = stream; 7874fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon mContentLength = length; 7974fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon mHeaders = headers; 8074fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon mStatusCode = code; 8174fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon } 8274fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon 8374fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon /** 8474fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * Returns the input stream that contains the plugin content. 8574fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * 8674fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * @return An InputStream instance with the plugin content. 8774fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * 8874fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * @hide 8974fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * @deprecated This class was intended to be used by Gears. Since Gears was 9074fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * deprecated, so is this class. 9174fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon */ 9274fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon @Deprecated 9374fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon public InputStream getInputStream() { 9474fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon return mStream; 9574fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon } 9674fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon 9774fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon /** 9874fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * Returns the length of the plugin content. 9974fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * 10074fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * @return the length of the plugin content. 10174fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * 10274fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * @hide 10374fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * @deprecated This class was intended to be used by Gears. Since Gears was 10474fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * deprecated, so is this class. 10574fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon */ 10674fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon @Deprecated 10774fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon public long getContentLength() { 10874fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon return mContentLength; 10974fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon } 11074fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon 11174fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon /** 11274fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * Returns the HTTP response headers associated with the plugin 11374fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * content. 11474fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * 11574fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * @return A Map<String, String[]> containing all headers. The 11674fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * mapping is 'lowercase header name' to ['unmodified header 11774fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * name', header value]. 11874fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * 11974fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * @hide 12074fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * @deprecated This class was intended to be used by Gears. Since Gears was 12174fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * deprecated, so is this class. 12274fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon */ 12374fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon @Deprecated 12474fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon public Map<String, String[]> getHeaders() { 12574fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon return mHeaders; 12674fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon } 12774fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon 12874fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon /** 12974fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * Returns the HTTP status code for the response. 13074fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * 13174fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * @return The HTTP statue code, e.g 200. 13274fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * 13374fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * @hide 13474fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * @deprecated This class was intended to be used by Gears. Since Gears was 13574fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon * deprecated, so is this class. 13674fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon */ 13774fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon @Deprecated 13874fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon public int getStatusCode() { 13974fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon return mStatusCode; 14074fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon } 14174fc73f62bd1ade8e94a6bba34bcd24d54400dd2Jonathan Dixon} 142