Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(84)

Unified Diff: mojo/services/html_viewer/blink_url_request_type_converters.cc

Issue 1099303002: Move html_viewer from mojo/services to components. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: mojo/services/html_viewer/blink_url_request_type_converters.cc
diff --git a/mojo/services/html_viewer/blink_url_request_type_converters.cc b/mojo/services/html_viewer/blink_url_request_type_converters.cc
deleted file mode 100644
index 3cae06f9420df4d7b22326ccaa7f77f9e44b56da..0000000000000000000000000000000000000000
--- a/mojo/services/html_viewer/blink_url_request_type_converters.cc
+++ /dev/null
@@ -1,110 +0,0 @@
-// Copyright 2014 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 "mojo/services/html_viewer/blink_url_request_type_converters.h"
-
-#include "base/strings/string_util.h"
-#include "third_party/WebKit/public/platform/WebHTTPHeaderVisitor.h"
-#include "third_party/WebKit/public/platform/WebURLRequest.h"
-#include "third_party/mojo/src/mojo/public/cpp/system/data_pipe.h"
-
-namespace mojo {
-namespace {
-
-// Ripped from web_url_loader_impl.cc.
-class HeaderFlattener : public blink::WebHTTPHeaderVisitor {
- public:
- HeaderFlattener() : has_accept_header_(false) {}
-
- void visitHeader(const blink::WebString& name,
- const blink::WebString& value) override {
- // Headers are latin1.
- const std::string& name_latin1 = name.latin1();
- const std::string& value_latin1 = value.latin1();
-
- // Skip over referrer headers found in the header map because we already
- // pulled it out as a separate parameter.
- if (LowerCaseEqualsASCII(name_latin1, "referer"))
- return;
-
- if (LowerCaseEqualsASCII(name_latin1, "accept"))
- has_accept_header_ = true;
-
- buffer_.push_back(name_latin1 + ": " + value_latin1);
- }
-
- Array<String> GetBuffer() {
- // In some cases, WebKit doesn't add an Accept header, but not having the
- // header confuses some web servers. See bug 808613.
- if (!has_accept_header_) {
- buffer_.push_back("Accept: */*");
- has_accept_header_ = true;
- }
- return buffer_.Pass();
- }
-
- private:
- Array<String> buffer_;
- bool has_accept_header_;
-};
-
-void AddRequestBody(URLRequest* url_request,
- const blink::WebURLRequest& request) {
- if (request.httpBody().isNull())
- return;
-
- uint32_t i = 0;
- blink::WebHTTPBody::Element element;
- while (request.httpBody().elementAt(i++, element)) {
- switch (element.type) {
- case blink::WebHTTPBody::Element::TypeData:
- if (!element.data.isEmpty()) {
- // WebKit sometimes gives up empty data to append. These aren't
- // necessary so we just optimize those out here.
- uint32_t num_bytes = static_cast<uint32_t>(element.data.size());
- MojoCreateDataPipeOptions options;
- options.struct_size = sizeof(MojoCreateDataPipeOptions);
- options.flags = MOJO_CREATE_DATA_PIPE_OPTIONS_FLAG_NONE;
- options.element_num_bytes = 1;
- options.capacity_num_bytes = num_bytes;
- DataPipe data_pipe(options);
- url_request->body.push_back(
- data_pipe.consumer_handle.Pass());
- WriteDataRaw(data_pipe.producer_handle.get(),
- element.data.data(),
- &num_bytes,
- MOJO_WRITE_DATA_FLAG_ALL_OR_NONE);
- }
- break;
- case blink::WebHTTPBody::Element::TypeFile:
- case blink::WebHTTPBody::Element::TypeFileSystemURL:
- case blink::WebHTTPBody::Element::TypeBlob:
- // TODO(mpcomplete): handle these.
- NOTIMPLEMENTED();
- break;
- default:
- NOTREACHED();
- }
- }
-}
-
-} // namespace
-
-URLRequestPtr TypeConverter<URLRequestPtr, blink::WebURLRequest>::Convert(
- const blink::WebURLRequest& request) {
- URLRequestPtr url_request(URLRequest::New());
- url_request->url = request.url().string().utf8();
- url_request->method = request.httpMethod().utf8();
-
- HeaderFlattener flattener;
- request.visitHTTPHeaderFields(&flattener);
- url_request->headers = flattener.GetBuffer().Pass();
-
- AddRequestBody(url_request.get(), request);
-
- return url_request.Pass();
-}
-
-} // namespace mojo
-

Powered by Google App Engine
This is Rietveld 408576698