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 |