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

Unified Diff: components/html_viewer/blink_url_request_type_converters.cc

Issue 1677293002: Bye bye Mandoline (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: moar Created 4 years, 10 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: components/html_viewer/blink_url_request_type_converters.cc
diff --git a/components/html_viewer/blink_url_request_type_converters.cc b/components/html_viewer/blink_url_request_type_converters.cc
deleted file mode 100644
index 141964d3930d46b3365a2b50fcaad2b550c4643b..0000000000000000000000000000000000000000
--- a/components/html_viewer/blink_url_request_type_converters.cc
+++ /dev/null
@@ -1,113 +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 "components/html_viewer/blink_url_request_type_converters.h"
-
-#include <stdint.h>
-#include <utility>
-
-#include "base/strings/string_util.h"
-#include "mojo/public/cpp/system/data_pipe.h"
-#include "third_party/WebKit/public/platform/WebHTTPHeaderVisitor.h"
-#include "third_party/WebKit/public/platform/WebURLRequest.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();
-
- if (base::LowerCaseEqualsASCII(name_latin1, "accept"))
- has_accept_header_ = true;
-
- HttpHeaderPtr header = HttpHeader::New();
- header->name = name_latin1;
- header->value = value_latin1;
- buffer_.push_back(std::move(header));
- }
-
- Array<HttpHeaderPtr> 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_) {
- HttpHeaderPtr header = HttpHeader::New();
- header->name = "Accept";
- header->value = "*/*";
- buffer_.push_back(std::move(header));
- has_accept_header_ = true;
- }
- return std::move(buffer_);
- }
-
- private:
- Array<HttpHeaderPtr> 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(std::move(data_pipe.consumer_handle));
- 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();
-
- AddRequestBody(url_request.get(), request);
-
- return url_request;
-}
-
-} // namespace mojo
-
« no previous file with comments | « components/html_viewer/blink_url_request_type_converters.h ('k') | components/html_viewer/content_handler_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698