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

Unified Diff: chrome/browser/extensions/api/web_request/upload_data_presenter.cc

Issue 584163004: Move web_request directory to //extensions. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase again Created 6 years, 3 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: chrome/browser/extensions/api/web_request/upload_data_presenter.cc
diff --git a/chrome/browser/extensions/api/web_request/upload_data_presenter.cc b/chrome/browser/extensions/api/web_request/upload_data_presenter.cc
deleted file mode 100644
index 8caba46cde609d87137c739ade63fb9c84e61bc2..0000000000000000000000000000000000000000
--- a/chrome/browser/extensions/api/web_request/upload_data_presenter.cc
+++ /dev/null
@@ -1,162 +0,0 @@
-// Copyright (c) 2012 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 "chrome/browser/extensions/api/web_request/upload_data_presenter.h"
-
-#include "base/files/file_path.h"
-#include "base/strings/string_util.h"
-#include "base/values.h"
-#include "chrome/browser/extensions/api/web_request/form_data_parser.h"
-#include "extensions/browser/api/web_request/web_request_api_constants.h"
-#include "net/base/upload_bytes_element_reader.h"
-#include "net/base/upload_file_element_reader.h"
-#include "net/url_request/url_request.h"
-
-using base::BinaryValue;
-using base::DictionaryValue;
-using base::ListValue;
-using base::StringValue;
-using base::Value;
-
-namespace keys = extension_web_request_api_constants;
-
-namespace {
-
-// Takes |dictionary| of <string, list of strings> pairs, and gets the list
-// for |key|, creating it if necessary.
-base::ListValue* GetOrCreateList(base::DictionaryValue* dictionary,
- const std::string& key) {
- base::ListValue* list = NULL;
- if (!dictionary->GetList(key, &list)) {
- list = new base::ListValue();
- dictionary->SetWithoutPathExpansion(key, list);
- }
- return list;
-}
-
-} // namespace
-
-namespace extensions {
-
-namespace subtle {
-
-void AppendKeyValuePair(const char* key,
- base::Value* value,
- base::ListValue* list) {
- base::DictionaryValue* dictionary = new base::DictionaryValue;
- dictionary->SetWithoutPathExpansion(key, value);
- list->Append(dictionary);
-}
-
-} // namespace subtle
-
-UploadDataPresenter::~UploadDataPresenter() {}
-
-RawDataPresenter::RawDataPresenter()
- : success_(true),
- list_(new base::ListValue) {
-}
-RawDataPresenter::~RawDataPresenter() {}
-
-void RawDataPresenter::FeedNext(const net::UploadElementReader& reader) {
- if (!success_)
- return;
-
- if (reader.AsBytesReader()) {
- const net::UploadBytesElementReader* bytes_reader = reader.AsBytesReader();
- FeedNextBytes(bytes_reader->bytes(), bytes_reader->length());
- } else if (reader.AsFileReader()) {
- // Insert the file path instead of the contents, which may be too large.
- const net::UploadFileElementReader* file_reader = reader.AsFileReader();
- FeedNextFile(file_reader->path().AsUTF8Unsafe());
- } else {
- NOTIMPLEMENTED();
- }
-}
-
-bool RawDataPresenter::Succeeded() {
- return success_;
-}
-
-scoped_ptr<base::Value> RawDataPresenter::Result() {
- if (!success_)
- return scoped_ptr<base::Value>();
-
- return list_.PassAs<base::Value>();
-}
-
-void RawDataPresenter::FeedNextBytes(const char* bytes, size_t size) {
- subtle::AppendKeyValuePair(keys::kRequestBodyRawBytesKey,
- BinaryValue::CreateWithCopiedBuffer(bytes, size),
- list_.get());
-}
-
-void RawDataPresenter::FeedNextFile(const std::string& filename) {
- // Insert the file path instead of the contents, which may be too large.
- subtle::AppendKeyValuePair(keys::kRequestBodyRawFileKey,
- new base::StringValue(filename),
- list_.get());
-}
-
-ParsedDataPresenter::ParsedDataPresenter(const net::URLRequest& request)
- : parser_(FormDataParser::Create(request)),
- success_(parser_.get() != NULL),
- dictionary_(success_ ? new base::DictionaryValue() : NULL) {
-}
-
-ParsedDataPresenter::~ParsedDataPresenter() {}
-
-void ParsedDataPresenter::FeedNext(const net::UploadElementReader& reader) {
- if (!success_)
- return;
-
- const net::UploadBytesElementReader* bytes_reader = reader.AsBytesReader();
- if (!bytes_reader) {
- return;
- }
- if (!parser_->SetSource(base::StringPiece(bytes_reader->bytes(),
- bytes_reader->length()))) {
- Abort();
- return;
- }
-
- FormDataParser::Result result;
- while (parser_->GetNextNameValue(&result)) {
- GetOrCreateList(dictionary_.get(), result.name())->Append(
- new base::StringValue(result.value()));
- }
-}
-
-bool ParsedDataPresenter::Succeeded() {
- if (success_ && !parser_->AllDataReadOK())
- Abort();
- return success_;
-}
-
-scoped_ptr<base::Value> ParsedDataPresenter::Result() {
- if (!success_)
- return scoped_ptr<base::Value>();
-
- return dictionary_.PassAs<base::Value>();
-}
-
-// static
-scoped_ptr<ParsedDataPresenter> ParsedDataPresenter::CreateForTests() {
- const std::string form_type("application/x-www-form-urlencoded");
- return scoped_ptr<ParsedDataPresenter>(new ParsedDataPresenter(form_type));
-}
-
-ParsedDataPresenter::ParsedDataPresenter(const std::string& form_type)
- : parser_(FormDataParser::CreateFromContentTypeHeader(&form_type)),
- success_(parser_.get() != NULL),
- dictionary_(success_ ? new base::DictionaryValue() : NULL) {
-}
-
-void ParsedDataPresenter::Abort() {
- success_ = false;
- dictionary_.reset();
- parser_.reset();
-}
-
-} // namespace extensions

Powered by Google App Engine
This is Rietveld 408576698