| Index: chrome/browser/renderer_host/media_resource_handler.cc
|
| ===================================================================
|
| --- chrome/browser/renderer_host/media_resource_handler.cc (revision 17048)
|
| +++ chrome/browser/renderer_host/media_resource_handler.cc (working copy)
|
| @@ -1,98 +0,0 @@
|
| -// Copyright (c) 2006-2008 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/renderer_host/media_resource_handler.h"
|
| -
|
| -#include "base/process.h"
|
| -#include "chrome/common/render_messages.h"
|
| -#include "net/base/load_flags.h"
|
| -
|
| -MediaResourceHandler::MediaResourceHandler(
|
| - ResourceHandler* resource_handler,
|
| - ResourceDispatcherHost::Receiver* receiver,
|
| - int render_process_host_id,
|
| - int routing_id,
|
| - base::ProcessHandle render_process,
|
| - ResourceDispatcherHost* resource_dispatcher_host)
|
| - : receiver_(receiver),
|
| - render_process_host_id_(render_process_host_id),
|
| - routing_id_(routing_id),
|
| - render_process_(render_process),
|
| - handler_(resource_handler),
|
| - rdh_(resource_dispatcher_host),
|
| - has_file_handle_(false),
|
| - position_(0),
|
| - size_(-1) {
|
| -}
|
| -
|
| -bool MediaResourceHandler::OnUploadProgress(int request_id,
|
| - uint64 position,
|
| - uint64 size) {
|
| - return handler_->OnUploadProgress(request_id, position, size);
|
| -}
|
| -
|
| -bool MediaResourceHandler::OnRequestRedirected(int request_id,
|
| - const GURL& new_url) {
|
| - return handler_->OnRequestRedirected(request_id, new_url);
|
| -}
|
| -
|
| -bool MediaResourceHandler::OnResponseStarted(int request_id,
|
| - ResourceResponse* response) {
|
| -#if defined(OS_POSIX)
|
| - if (response->response_head.response_data_file.fd !=
|
| - base::kInvalidPlatformFileValue) {
|
| - // On POSIX, we will just set auto_close to true, and the IPC infrastructure
|
| - // will send this file handle through and close it automatically.
|
| - response->response_head.response_data_file.auto_close = true;
|
| - has_file_handle_ = true;
|
| - }
|
| -#elif defined(OS_WIN)
|
| - if (response->response_head.response_data_file !=
|
| - base::kInvalidPlatformFileValue) {
|
| - // On Windows, we duplicate the file handle for the renderer process and
|
| - // close the original manually.
|
| - base::PlatformFile foreign_handle;
|
| - if (DuplicateHandle(GetCurrentProcess(),
|
| - response->response_head.response_data_file,
|
| - render_process_,
|
| - &foreign_handle,
|
| - FILE_READ_DATA, // Only allow read access to data.
|
| - false, // Foreign handle is not inheritable.
|
| - // Close the file handle after duplication.
|
| - DUPLICATE_CLOSE_SOURCE)){
|
| - response->response_head.response_data_file = foreign_handle;
|
| - has_file_handle_ = true;
|
| - } else {
|
| - has_file_handle_ = false;
|
| - }
|
| - }
|
| -#endif
|
| - size_ = response->response_head.content_length;
|
| - return handler_->OnResponseStarted(request_id, response);
|
| -}
|
| -
|
| -bool MediaResourceHandler::OnWillRead(int request_id,
|
| - net::IOBuffer** buf, int* buf_size,
|
| - int min_size) {
|
| - return handler_->OnWillRead(request_id, buf, buf_size, min_size);
|
| -}
|
| -
|
| -bool MediaResourceHandler::OnReadCompleted(int request_id, int* bytes_read) {
|
| - if (has_file_handle_) {
|
| - // If we have received a file handle before we will be sending a progress
|
| - // update for download.
|
| - // TODO(hclam): rate limit this message so we won't be sending too much to
|
| - // the renderer process.
|
| - receiver_->Send(
|
| - new ViewMsg_Resource_DownloadProgress(routing_id_, request_id,
|
| - position_, size_));
|
| - position_ += *bytes_read;
|
| - }
|
| - return handler_->OnReadCompleted(request_id, bytes_read);
|
| -}
|
| -
|
| -bool MediaResourceHandler::OnResponseCompleted(int request_id,
|
| - const URLRequestStatus& status, const std::string& security_info) {
|
| - return handler_->OnResponseCompleted(request_id, status, security_info);
|
| -}
|
|
|