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

Side by Side Diff: chrome/browser/renderer_host/save_file_resource_handler.cc

Issue 348037: Fourth patch in getting rid of caching MessageLoop pointers. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 1 month 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/renderer_host/save_file_resource_handler.h" 5 #include "chrome/browser/renderer_host/save_file_resource_handler.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/message_loop.h" 8 #include "base/message_loop.h"
9 #include "base/string_util.h" 9 #include "base/string_util.h"
10 #include "chrome/browser/chrome_thread.h"
10 #include "chrome/browser/download/save_file_manager.h" 11 #include "chrome/browser/download/save_file_manager.h"
11 #include "net/base/io_buffer.h" 12 #include "net/base/io_buffer.h"
12 13
13 SaveFileResourceHandler::SaveFileResourceHandler(int render_process_host_id, 14 SaveFileResourceHandler::SaveFileResourceHandler(int render_process_host_id,
14 int render_view_id, 15 int render_view_id,
15 const GURL& url, 16 const GURL& url,
16 SaveFileManager* manager) 17 SaveFileManager* manager)
17 : save_id_(-1), 18 : save_id_(-1),
18 render_process_id_(render_process_host_id), 19 render_process_id_(render_process_host_id),
19 render_view_id_(render_view_id), 20 render_view_id_(render_view_id),
(...skipping 17 matching lines...) Expand all
37 SaveFileCreateInfo* info = new SaveFileCreateInfo; 38 SaveFileCreateInfo* info = new SaveFileCreateInfo;
38 info->url = url_; 39 info->url = url_;
39 info->final_url = final_url_; 40 info->final_url = final_url_;
40 info->total_bytes = content_length_; 41 info->total_bytes = content_length_;
41 info->save_id = save_id_; 42 info->save_id = save_id_;
42 info->render_process_id = render_process_id_; 43 info->render_process_id = render_process_id_;
43 info->render_view_id = render_view_id_; 44 info->render_view_id = render_view_id_;
44 info->request_id = request_id; 45 info->request_id = request_id;
45 info->content_disposition = content_disposition_; 46 info->content_disposition = content_disposition_;
46 info->save_source = SaveFileCreateInfo::SAVE_FILE_FROM_NET; 47 info->save_source = SaveFileCreateInfo::SAVE_FILE_FROM_NET;
47 save_manager_->file_loop()->PostTask(FROM_HERE, 48 ChromeThread::PostTask(
49 ChromeThread::FILE, FROM_HERE,
48 NewRunnableMethod(save_manager_, 50 NewRunnableMethod(save_manager_,
49 &SaveFileManager::StartSave, 51 &SaveFileManager::StartSave,
50 info)); 52 info));
51 return true; 53 return true;
52 } 54 }
53 55
54 bool SaveFileResourceHandler::OnWillRead(int request_id, net::IOBuffer** buf, 56 bool SaveFileResourceHandler::OnWillRead(int request_id, net::IOBuffer** buf,
55 int* buf_size, int min_size) { 57 int* buf_size, int min_size) {
56 DCHECK(buf && buf_size); 58 DCHECK(buf && buf_size);
57 if (!read_buffer_) { 59 if (!read_buffer_) {
58 *buf_size = min_size < 0 ? kReadBufSize : min_size; 60 *buf_size = min_size < 0 ? kReadBufSize : min_size;
59 read_buffer_ = new net::IOBuffer(*buf_size); 61 read_buffer_ = new net::IOBuffer(*buf_size);
60 } 62 }
61 *buf = read_buffer_.get(); 63 *buf = read_buffer_.get();
62 // TODO(willchan): Remove after debugging bug 16371. 64 // TODO(willchan): Remove after debugging bug 16371.
63 CHECK(read_buffer_->data()); 65 CHECK(read_buffer_->data());
64 return true; 66 return true;
65 } 67 }
66 68
67 bool SaveFileResourceHandler::OnReadCompleted(int request_id, int* bytes_read) { 69 bool SaveFileResourceHandler::OnReadCompleted(int request_id, int* bytes_read) {
68 DCHECK(read_buffer_); 70 DCHECK(read_buffer_);
69 // We are passing ownership of this buffer to the save file manager. 71 // We are passing ownership of this buffer to the save file manager.
70 net::IOBuffer* buffer = NULL; 72 net::IOBuffer* buffer = NULL;
71 read_buffer_.swap(&buffer); 73 read_buffer_.swap(&buffer);
72 save_manager_->file_loop()->PostTask(FROM_HERE, 74 ChromeThread::PostTask(
75 ChromeThread::FILE, FROM_HERE,
73 NewRunnableMethod(save_manager_, 76 NewRunnableMethod(save_manager_,
74 &SaveFileManager::UpdateSaveProgress, 77 &SaveFileManager::UpdateSaveProgress,
75 save_id_, 78 save_id_,
76 buffer, 79 buffer,
77 *bytes_read)); 80 *bytes_read));
78 return true; 81 return true;
79 } 82 }
80 83
81 bool SaveFileResourceHandler::OnResponseCompleted( 84 bool SaveFileResourceHandler::OnResponseCompleted(
82 int request_id, 85 int request_id,
83 const URLRequestStatus& status, 86 const URLRequestStatus& status,
84 const std::string& security_info) { 87 const std::string& security_info) {
85 save_manager_->file_loop()->PostTask(FROM_HERE, 88 ChromeThread::PostTask(
89 ChromeThread::FILE, FROM_HERE,
86 NewRunnableMethod(save_manager_, 90 NewRunnableMethod(save_manager_,
87 &SaveFileManager::SaveFinished, 91 &SaveFileManager::SaveFinished,
88 save_id_, 92 save_id_,
89 url_, 93 url_,
90 render_process_id_, 94 render_process_id_,
91 status.is_success() && !status.is_io_pending())); 95 status.is_success() && !status.is_io_pending()));
92 read_buffer_ = NULL; 96 read_buffer_ = NULL;
93 return true; 97 return true;
94 } 98 }
95 99
96 void SaveFileResourceHandler::set_content_length( 100 void SaveFileResourceHandler::set_content_length(
97 const std::string& content_length) { 101 const std::string& content_length) {
98 content_length_ = StringToInt64(content_length); 102 content_length_ = StringToInt64(content_length);
99 } 103 }
OLDNEW
« no previous file with comments | « chrome/browser/renderer_host/resource_dispatcher_host.cc ('k') | chrome/browser/safe_browsing/protocol_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698