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

Unified Diff: ppapi/native_client/src/trusted/plugin/file_downloader.cc

Issue 393693004: Pepper: Delete FileDownloader in trusted plugin. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: STL fix Created 6 years, 5 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: ppapi/native_client/src/trusted/plugin/file_downloader.cc
diff --git a/ppapi/native_client/src/trusted/plugin/file_downloader.cc b/ppapi/native_client/src/trusted/plugin/file_downloader.cc
deleted file mode 100644
index ccddfe8f693fc20462f31bc67067b8cd7399101c..0000000000000000000000000000000000000000
--- a/ppapi/native_client/src/trusted/plugin/file_downloader.cc
+++ /dev/null
@@ -1,179 +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 "ppapi/native_client/src/trusted/plugin/file_downloader.h"
-
-#include <stdio.h>
-#include <string.h>
-#include <string>
-
-#include "native_client/src/include/portability_io.h"
-#include "native_client/src/shared/platform/nacl_check.h"
-#include "native_client/src/shared/platform/nacl_time.h"
-#include "ppapi/c/pp_errors.h"
-#include "ppapi/cpp/url_request_info.h"
-#include "ppapi/cpp/url_response_info.h"
-#include "ppapi/native_client/src/trusted/plugin/callback_source.h"
-#include "ppapi/native_client/src/trusted/plugin/plugin.h"
-#include "ppapi/native_client/src/trusted/plugin/utility.h"
-
-namespace plugin {
-
-FileDownloader::FileDownloader(Plugin* instance)
- : instance_(instance),
- file_open_notify_callback_(pp::BlockUntilComplete()),
- stream_finish_callback_(pp::BlockUntilComplete()),
- mode_(DOWNLOAD_NONE),
- data_stream_callback_source_(NULL) {
- callback_factory_.Initialize(this);
- temp_buffer_.resize(kTempBufferSize);
-}
-
-bool FileDownloader::OpenStream(
- const nacl::string& url,
- const pp::CompletionCallback& callback,
- StreamCallbackSource* stream_callback_source) {
- data_stream_callback_source_ = stream_callback_source;
- PLUGIN_PRINTF(("FileDownloader::Open (url=%s)\n", url.c_str()));
- if (callback.pp_completion_callback().func == NULL || instance_ == NULL)
- return false;
-
- status_code_ = -1;
- file_open_notify_callback_ = callback;
- mode_ = DOWNLOAD_TO_BUFFER_AND_STREAM;
- pp::URLRequestInfo url_request(instance_);
-
- // Allow CORS.
- // Note that "SetAllowCrossOriginRequests" (currently) has the side effect of
- // preventing credentials from being sent on same-origin requests. We
- // therefore avoid setting this flag unless we know for sure it is a
- // cross-origin request, resulting in behavior similar to XMLHttpRequest.
- if (!instance_->DocumentCanRequest(url))
- url_request.SetAllowCrossOriginRequests(true);
-
- if (!extra_request_headers_.empty())
- url_request.SetHeaders(extra_request_headers_);
-
- // Reset the url loader and file reader.
- // Note that we have the only reference to the underlying objects, so
- // this will implicitly close any pending IO and destroy them.
- url_loader_ = pp::URLLoader(instance_);
- url_request.SetRecordDownloadProgress(true);
-
- // Prepare the url request.
- url_request.SetURL(url);
-
- // Request asynchronous download of the url providing an on-load callback.
- // As long as this step is guaranteed to be asynchronous, we can call
- // synchronously all other internal callbacks that eventually result in the
- // invocation of the user callback. The user code will not be reentered.
- pp::CompletionCallback onload_callback =
- callback_factory_.NewCallback(&FileDownloader::URLLoadStartNotify);
- int32_t pp_error = url_loader_.Open(url_request, onload_callback);
- PLUGIN_PRINTF(("FileDownloader::Open (pp_error=%" NACL_PRId32 ")\n",
- pp_error));
- CHECK(pp_error == PP_OK_COMPLETIONPENDING);
- return true;
-}
-
-bool FileDownloader::InitialResponseIsValid() {
- // Process the response, validating the headers to confirm successful loading.
- url_response_ = url_loader_.GetResponseInfo();
- if (url_response_.is_null()) {
- PLUGIN_PRINTF((
- "FileDownloader::InitialResponseIsValid (url_response_=NULL)\n"));
- return false;
- }
-
- pp::Var full_url = url_response_.GetURL();
- if (!full_url.is_string()) {
- PLUGIN_PRINTF((
- "FileDownloader::InitialResponseIsValid (url is not a string)\n"));
- return false;
- }
- full_url_ = full_url.AsString();
-
- status_code_ = url_response_.GetStatusCode();
- PLUGIN_PRINTF(("FileDownloader::InitialResponseIsValid ("
- "response status_code=%" NACL_PRId32 ")\n", status_code_));
- return status_code_ == NACL_HTTP_STATUS_OK;
-}
-
-void FileDownloader::URLLoadStartNotify(int32_t pp_error) {
- PLUGIN_PRINTF(("FileDownloader::URLLoadStartNotify (pp_error=%"
- NACL_PRId32")\n", pp_error));
- if (pp_error != PP_OK) {
- file_open_notify_callback_.RunAndClear(pp_error);
- return;
- }
-
- if (!InitialResponseIsValid()) {
- file_open_notify_callback_.RunAndClear(PP_ERROR_FAILED);
- return;
- }
-
- file_open_notify_callback_.RunAndClear(PP_OK);
-}
-
-void FileDownloader::BeginStreaming(
- const pp::CompletionCallback& callback) {
- stream_finish_callback_ = callback;
-
- // Finish streaming the body providing an optional callback.
- pp::CompletionCallback onread_callback =
- callback_factory_.NewOptionalCallback(
- &FileDownloader::URLReadBodyNotify);
- int32_t temp_size = static_cast<int32_t>(temp_buffer_.size());
- int32_t pp_error = url_loader_.ReadResponseBody(&temp_buffer_[0],
- temp_size,
- onread_callback);
- if (pp_error != PP_OK_COMPLETIONPENDING)
- onread_callback.RunAndClear(pp_error);
-}
-
-void FileDownloader::URLReadBodyNotify(int32_t pp_error) {
- PLUGIN_PRINTF(("FileDownloader::URLReadBodyNotify (pp_error=%"
- NACL_PRId32")\n", pp_error));
- if (pp_error < PP_OK) {
- stream_finish_callback_.RunAndClear(pp_error);
- } else if (pp_error == PP_OK) {
- data_stream_callback_source_->GetCallback().RunAndClear(PP_OK);
- stream_finish_callback_.RunAndClear(PP_OK);
- } else {
- PLUGIN_PRINTF(("Running data_stream_callback, temp_buffer_=%p\n",
- &temp_buffer_[0]));
- StreamCallback cb = data_stream_callback_source_->GetCallback();
- *(cb.output()) = &temp_buffer_;
- cb.RunAndClear(pp_error);
-
- pp::CompletionCallback onread_callback =
- callback_factory_.NewOptionalCallback(
- &FileDownloader::URLReadBodyNotify);
- int32_t temp_size = static_cast<int32_t>(temp_buffer_.size());
- pp_error = url_loader_.ReadResponseBody(&temp_buffer_[0],
- temp_size,
- onread_callback);
- if (pp_error != PP_OK_COMPLETIONPENDING)
- onread_callback.RunAndClear(pp_error);
- }
-}
-
-bool FileDownloader::GetDownloadProgress(
- int64_t* bytes_received,
- int64_t* total_bytes_to_be_received) const {
- return url_loader_.GetDownloadProgress(bytes_received,
- total_bytes_to_be_received);
-}
-
-nacl::string FileDownloader::GetResponseHeaders() const {
- pp::Var headers = url_response_.GetHeaders();
- if (!headers.is_string()) {
- PLUGIN_PRINTF((
- "FileDownloader::GetResponseHeaders (headers are not a string)\n"));
- return nacl::string();
- }
- return headers.AsString();
-}
-
-} // namespace plugin
« no previous file with comments | « ppapi/native_client/src/trusted/plugin/file_downloader.h ('k') | ppapi/native_client/src/trusted/plugin/plugin.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698