| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 // This file contains download browser tests that are known to be runnable | 5 // This file contains download browser tests that are known to be runnable |
| 6 // in a pure content context. Over time tests should be migrated here. | 6 // in a pure content context. Over time tests should be migrated here. |
| 7 | 7 |
| 8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
| 9 #include "base/file_util.h" | 9 #include "base/file_util.h" |
| 10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 113 // retrieval. | 113 // retrieval. |
| 114 virtual void RenameAndUniquify( | 114 virtual void RenameAndUniquify( |
| 115 const base::FilePath& full_path, | 115 const base::FilePath& full_path, |
| 116 const RenameCompletionCallback& callback) OVERRIDE; | 116 const RenameCompletionCallback& callback) OVERRIDE; |
| 117 virtual void RenameAndAnnotate( | 117 virtual void RenameAndAnnotate( |
| 118 const base::FilePath& full_path, | 118 const base::FilePath& full_path, |
| 119 const RenameCompletionCallback& callback) OVERRIDE; | 119 const RenameCompletionCallback& callback) OVERRIDE; |
| 120 | 120 |
| 121 private: | 121 private: |
| 122 static void RenameCallbackWrapper( | 122 static void RenameCallbackWrapper( |
| 123 DownloadFileWithDelayFactory* factory, | 123 const base::WeakPtr<DownloadFileWithDelayFactory>& factory, |
| 124 const RenameCompletionCallback& original_callback, | 124 const RenameCompletionCallback& original_callback, |
| 125 DownloadInterruptReason reason, | 125 DownloadInterruptReason reason, |
| 126 const base::FilePath& path); | 126 const base::FilePath& path); |
| 127 | 127 |
| 128 // This variable may only be read on the FILE thread, and may only be | 128 // This variable may only be read on the FILE thread, and may only be |
| 129 // indirected through (e.g. methods on DownloadFileWithDelayFactory called) | 129 // indirected through (e.g. methods on DownloadFileWithDelayFactory called) |
| 130 // on the UI thread. This is because after construction, | 130 // on the UI thread. This is because after construction, |
| 131 // DownloadFileWithDelay lives on the file thread, but | 131 // DownloadFileWithDelay lives on the file thread, but |
| 132 // DownloadFileWithDelayFactory is purely a UI thread object. | 132 // DownloadFileWithDelayFactory is purely a UI thread object. |
| 133 base::WeakPtr<DownloadFileWithDelayFactory> owner_; | 133 base::WeakPtr<DownloadFileWithDelayFactory> owner_; |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 197 void DownloadFileWithDelay::RenameAndAnnotate( | 197 void DownloadFileWithDelay::RenameAndAnnotate( |
| 198 const base::FilePath& full_path, const RenameCompletionCallback& callback) { | 198 const base::FilePath& full_path, const RenameCompletionCallback& callback) { |
| 199 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); | 199 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); |
| 200 DownloadFileImpl::RenameAndAnnotate( | 200 DownloadFileImpl::RenameAndAnnotate( |
| 201 full_path, base::Bind(DownloadFileWithDelay::RenameCallbackWrapper, | 201 full_path, base::Bind(DownloadFileWithDelay::RenameCallbackWrapper, |
| 202 owner_, callback)); | 202 owner_, callback)); |
| 203 } | 203 } |
| 204 | 204 |
| 205 // static | 205 // static |
| 206 void DownloadFileWithDelay::RenameCallbackWrapper( | 206 void DownloadFileWithDelay::RenameCallbackWrapper( |
| 207 DownloadFileWithDelayFactory* factory, | 207 const base::WeakPtr<DownloadFileWithDelayFactory>& factory, |
| 208 const RenameCompletionCallback& original_callback, | 208 const RenameCompletionCallback& original_callback, |
| 209 DownloadInterruptReason reason, | 209 DownloadInterruptReason reason, |
| 210 const base::FilePath& path) { | 210 const base::FilePath& path) { |
| 211 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 211 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 212 if (!factory.get()) |
| 213 return; |
| 212 factory->AddRenameCallback(base::Bind(original_callback, reason, path)); | 214 factory->AddRenameCallback(base::Bind(original_callback, reason, path)); |
| 213 } | 215 } |
| 214 | 216 |
| 215 DownloadFileWithDelayFactory::DownloadFileWithDelayFactory() | 217 DownloadFileWithDelayFactory::DownloadFileWithDelayFactory() |
| 216 : weak_ptr_factory_(this), | 218 : weak_ptr_factory_(this), |
| 217 waiting_(false) {} | 219 waiting_(false) {} |
| 218 DownloadFileWithDelayFactory::~DownloadFileWithDelayFactory() {} | 220 DownloadFileWithDelayFactory::~DownloadFileWithDelayFactory() {} |
| 219 | 221 |
| 220 DownloadFile* DownloadFileWithDelayFactory::CreateFile( | 222 DownloadFile* DownloadFileWithDelayFactory::CreateFile( |
| 221 scoped_ptr<DownloadSaveInfo> save_info, | 223 scoped_ptr<DownloadSaveInfo> save_info, |
| (...skipping 1331 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1553 // Start the second download and wait until it's done. The test server is | 1555 // Start the second download and wait until it's done. The test server is |
| 1554 // single threaded. The response to this download request should follow the | 1556 // single threaded. The response to this download request should follow the |
| 1555 // response to the previous resumption request. | 1557 // response to the previous resumption request. |
| 1556 GURL url2(test_server()->GetURL("rangereset?size=100&rst_limit=0&token=x")); | 1558 GURL url2(test_server()->GetURL("rangereset?size=100&rst_limit=0&token=x")); |
| 1557 DownloadAndWait(shell(), url2, DownloadItem::COMPLETE); | 1559 DownloadAndWait(shell(), url2, DownloadItem::COMPLETE); |
| 1558 | 1560 |
| 1559 EXPECT_TRUE(EnsureNoPendingDownloads()); | 1561 EXPECT_TRUE(EnsureNoPendingDownloads()); |
| 1560 } | 1562 } |
| 1561 | 1563 |
| 1562 } // namespace content | 1564 } // namespace content |
| OLD | NEW |