16d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)// Copyright 2014 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) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef ANDROID_WEBVIEW_NATIVE_INTERCEPTED_REQUEST_DATA_IMPL_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ANDROID_WEBVIEW_NATIVE_INTERCEPTED_REQUEST_DATA_IMPL_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 86d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)#include "android_webview/browser/aw_web_resource_response.h" 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/android/scoped_java_ref.h" 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/compiler_specific.h" 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/memory/scoped_ptr.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 136d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)namespace net { 146d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)class HttpResponseHeaders; 156d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)} 166d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace android_webview { 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class InputStream; 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 216d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)class AwWebResourceResponseImpl : public AwWebResourceResponse { 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // It is expected that |obj| is an instance of the Java-side 246d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) // org.chromium.android_webview.AwWebResourceResponse class. 256d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) AwWebResourceResponseImpl(const base::android::JavaRef<jobject>& obj); 266d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) virtual ~AwWebResourceResponseImpl(); 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 28f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual scoped_ptr<InputStream> GetInputStream(JNIEnv* env) const OVERRIDE; 29f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual bool GetMimeType(JNIEnv* env, std::string* mime_type) const OVERRIDE; 30f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual bool GetCharset(JNIEnv* env, std::string* charset) const OVERRIDE; 316d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) virtual bool GetStatusInfo(JNIEnv* env, 326d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) int* status_code, 336d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) std::string* reason_phrase) const OVERRIDE; 346d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) virtual bool GetResponseHeaders( 356d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) JNIEnv* env, 366d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) net::HttpResponseHeaders* headers) const OVERRIDE; 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base::android::ScopedJavaGlobalRef<jobject> java_object_; 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 416d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(AwWebResourceResponseImpl); 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 446d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)bool RegisterAwWebResourceResponse(JNIEnv* env); 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace android_webview 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // ANDROID_WEBVIEW_NATIVE_INTERCEPTED_REQUEST_DATA_IMPL_H_ 49