Index: android_webview/browser/net/aw_web_resource_request.cc |
diff --git a/android_webview/browser/net/aw_web_resource_request.cc b/android_webview/browser/net/aw_web_resource_request.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..20f8e7c18768693d9c4e975d7998cf7e621bb35b |
--- /dev/null |
+++ b/android_webview/browser/net/aw_web_resource_request.cc |
@@ -0,0 +1,58 @@ |
+// Copyright 2016 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "android_webview/browser/net/aw_web_resource_request.h" |
+ |
+#include "content/public/browser/resource_request_info.h" |
+#include "net/http/http_request_headers.h" |
+#include "net/http/http_response_headers.h" |
+#include "net/url_request/url_request.h" |
+ |
+using base::android::ConvertJavaStringToUTF16; |
+using base::android::ConvertUTF8ToJavaString; |
+using base::android::ConvertUTF16ToJavaString; |
+using base::android::ToJavaArrayOfStrings; |
+ |
+namespace android_webview { |
+ |
+AwWebResourceRequest::AwWebResourceRequest(const net::URLRequest& request) |
+ : url(request.url().spec()), method(request.method()) { |
+ const content::ResourceRequestInfo* info = |
+ content::ResourceRequestInfo::ForRequest(&request); |
+ is_main_frame = |
+ info && info->GetResourceType() == content::RESOURCE_TYPE_MAIN_FRAME; |
+ has_user_gesture = info && info->HasUserGesture(); |
+ |
+ net::HttpRequestHeaders headers; |
+ if (!request.GetFullRequestHeaders(&headers)) |
+ headers = request.extra_request_headers(); |
+ net::HttpRequestHeaders::Iterator headers_iterator(headers); |
+ while (headers_iterator.GetNext()) { |
+ header_names.push_back(headers_iterator.name()); |
+ header_values.push_back(headers_iterator.value()); |
+ } |
+} |
+ |
+AwWebResourceRequest::AwWebResourceRequest(AwWebResourceRequest&& other) = |
+ default; |
+AwWebResourceRequest& AwWebResourceRequest::operator=( |
+ AwWebResourceRequest&& other) = default; |
+AwWebResourceRequest::~AwWebResourceRequest() = default; |
+ |
+AwWebResourceRequest::AwJavaWebResourceRequest::AwJavaWebResourceRequest() = |
+ default; |
+AwWebResourceRequest::AwJavaWebResourceRequest::~AwJavaWebResourceRequest() = |
+ default; |
+ |
+// static |
+void AwWebResourceRequest::ConvertToJava(JNIEnv* env, |
+ const AwWebResourceRequest& request, |
+ AwJavaWebResourceRequest* jRequest) { |
+ jRequest->jurl = ConvertUTF8ToJavaString(env, request.url); |
+ jRequest->jmethod = ConvertUTF8ToJavaString(env, request.method); |
+ jRequest->jheader_names = ToJavaArrayOfStrings(env, request.header_names); |
+ jRequest->jheader_values = ToJavaArrayOfStrings(env, request.header_values); |
+} |
+ |
+} // namespace android_webview |