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 #include "chrome/browser/extensions/api/page_capture/page_capture_api.h" | 5 #include "chrome/browser/extensions/api/page_capture/page_capture_api.h" |
6 | 6 |
7 #include <limits> | 7 #include <limits> |
8 #include <memory> | 8 #include <memory> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
52 | 52 |
53 } // namespace | 53 } // namespace |
54 | 54 |
55 static PageCaptureSaveAsMHTMLFunction::TestDelegate* test_delegate_ = NULL; | 55 static PageCaptureSaveAsMHTMLFunction::TestDelegate* test_delegate_ = NULL; |
56 | 56 |
57 PageCaptureSaveAsMHTMLFunction::PageCaptureSaveAsMHTMLFunction() { | 57 PageCaptureSaveAsMHTMLFunction::PageCaptureSaveAsMHTMLFunction() { |
58 } | 58 } |
59 | 59 |
60 PageCaptureSaveAsMHTMLFunction::~PageCaptureSaveAsMHTMLFunction() { | 60 PageCaptureSaveAsMHTMLFunction::~PageCaptureSaveAsMHTMLFunction() { |
61 if (mhtml_file_.get()) { | 61 if (mhtml_file_.get()) { |
62 BrowserThread::PostTask( | 62 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, |
63 BrowserThread::IO, FROM_HERE, | 63 base::BindOnce(&ClearFileReferenceOnIOThread, |
64 base::Bind(&ClearFileReferenceOnIOThread, base::Passed(&mhtml_file_))); | 64 base::Passed(&mhtml_file_))); |
65 } | 65 } |
66 } | 66 } |
67 | 67 |
68 void PageCaptureSaveAsMHTMLFunction::SetTestDelegate(TestDelegate* delegate) { | 68 void PageCaptureSaveAsMHTMLFunction::SetTestDelegate(TestDelegate* delegate) { |
69 test_delegate_ = delegate; | 69 test_delegate_ = delegate; |
70 } | 70 } |
71 | 71 |
72 bool PageCaptureSaveAsMHTMLFunction::RunAsync() { | 72 bool PageCaptureSaveAsMHTMLFunction::RunAsync() { |
73 params_ = SaveAsMHTML::Params::Create(*args_); | 73 params_ = SaveAsMHTML::Params::Create(*args_); |
74 EXTENSION_FUNCTION_VALIDATE(params_.get()); | 74 EXTENSION_FUNCTION_VALIDATE(params_.get()); |
(...skipping 20 matching lines...) Expand all Loading... |
95 base::Unretained(this)); | 95 base::Unretained(this)); |
96 permission_helper::HandlePermissionRequest( | 96 permission_helper::HandlePermissionRequest( |
97 *extension(), {APIPermission::kPageCapture}, web_contents, callback, | 97 *extension(), {APIPermission::kPageCapture}, web_contents, callback, |
98 permission_helper::PromptFactory()); | 98 permission_helper::PromptFactory()); |
99 return true; | 99 return true; |
100 } | 100 } |
101 #endif | 101 #endif |
102 | 102 |
103 BrowserThread::PostTask( | 103 BrowserThread::PostTask( |
104 BrowserThread::FILE, FROM_HERE, | 104 BrowserThread::FILE, FROM_HERE, |
105 base::Bind(&PageCaptureSaveAsMHTMLFunction::CreateTemporaryFile, this)); | 105 base::BindOnce(&PageCaptureSaveAsMHTMLFunction::CreateTemporaryFile, |
| 106 this)); |
106 return true; | 107 return true; |
107 } | 108 } |
108 | 109 |
109 bool PageCaptureSaveAsMHTMLFunction::OnMessageReceived( | 110 bool PageCaptureSaveAsMHTMLFunction::OnMessageReceived( |
110 const IPC::Message& message) { | 111 const IPC::Message& message) { |
111 if (message.type() != ExtensionHostMsg_ResponseAck::ID) | 112 if (message.type() != ExtensionHostMsg_ResponseAck::ID) |
112 return false; | 113 return false; |
113 | 114 |
114 int message_request_id; | 115 int message_request_id; |
115 base::PickleIterator iter(message); | 116 base::PickleIterator iter(message); |
(...skipping 23 matching lines...) Expand all Loading... |
139 ReturnFailure(kUserDenied); | 140 ReturnFailure(kUserDenied); |
140 } | 141 } |
141 } | 142 } |
142 #endif | 143 #endif |
143 | 144 |
144 void PageCaptureSaveAsMHTMLFunction::CreateTemporaryFile() { | 145 void PageCaptureSaveAsMHTMLFunction::CreateTemporaryFile() { |
145 DCHECK_CURRENTLY_ON(BrowserThread::FILE); | 146 DCHECK_CURRENTLY_ON(BrowserThread::FILE); |
146 bool success = base::CreateTemporaryFile(&mhtml_path_); | 147 bool success = base::CreateTemporaryFile(&mhtml_path_); |
147 BrowserThread::PostTask( | 148 BrowserThread::PostTask( |
148 BrowserThread::IO, FROM_HERE, | 149 BrowserThread::IO, FROM_HERE, |
149 base::Bind(&PageCaptureSaveAsMHTMLFunction::TemporaryFileCreated, this, | 150 base::BindOnce(&PageCaptureSaveAsMHTMLFunction::TemporaryFileCreated, |
150 success)); | 151 this, success)); |
151 } | 152 } |
152 | 153 |
153 void PageCaptureSaveAsMHTMLFunction::TemporaryFileCreated(bool success) { | 154 void PageCaptureSaveAsMHTMLFunction::TemporaryFileCreated(bool success) { |
154 if (BrowserThread::CurrentlyOn(BrowserThread::IO)) { | 155 if (BrowserThread::CurrentlyOn(BrowserThread::IO)) { |
155 if (success) { | 156 if (success) { |
156 // Setup a ShareableFileReference so the temporary file gets deleted | 157 // Setup a ShareableFileReference so the temporary file gets deleted |
157 // once it is no longer used. | 158 // once it is no longer used. |
158 mhtml_file_ = ShareableFileReference::GetOrCreate( | 159 mhtml_file_ = ShareableFileReference::GetOrCreate( |
159 mhtml_path_, ShareableFileReference::DELETE_ON_FINAL_RELEASE, | 160 mhtml_path_, ShareableFileReference::DELETE_ON_FINAL_RELEASE, |
160 BrowserThread::GetTaskRunnerForThread(BrowserThread::FILE).get()); | 161 BrowserThread::GetTaskRunnerForThread(BrowserThread::FILE).get()); |
161 } | 162 } |
162 BrowserThread::PostTask( | 163 BrowserThread::PostTask( |
163 BrowserThread::UI, FROM_HERE, | 164 BrowserThread::UI, FROM_HERE, |
164 base::Bind(&PageCaptureSaveAsMHTMLFunction::TemporaryFileCreated, this, | 165 base::BindOnce(&PageCaptureSaveAsMHTMLFunction::TemporaryFileCreated, |
165 success)); | 166 this, success)); |
166 return; | 167 return; |
167 } | 168 } |
168 | 169 |
169 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 170 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
170 if (!success) { | 171 if (!success) { |
171 ReturnFailure(kTemporaryFileError); | 172 ReturnFailure(kTemporaryFileError); |
172 return; | 173 return; |
173 } | 174 } |
174 | 175 |
175 if (test_delegate_) | 176 if (test_delegate_) |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
243 GetProfile(), | 244 GetProfile(), |
244 include_incognito(), | 245 include_incognito(), |
245 &browser, | 246 &browser, |
246 NULL, | 247 NULL, |
247 &web_contents, | 248 &web_contents, |
248 NULL)) { | 249 NULL)) { |
249 return NULL; | 250 return NULL; |
250 } | 251 } |
251 return web_contents; | 252 return web_contents; |
252 } | 253 } |
OLD | NEW |