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/printing/print_job_worker.h" | 5 #include "chrome/browser/printing/print_job_worker.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
209 printing_context_->settings(), | 209 printing_context_->settings(), |
210 result)); | 210 result)); |
211 } | 211 } |
212 | 212 |
213 void PrintJobWorker::GetSettingsWithUI( | 213 void PrintJobWorker::GetSettingsWithUI( |
214 int document_page_count, | 214 int document_page_count, |
215 bool has_selection, | 215 bool has_selection, |
216 bool is_scripted) { | 216 bool is_scripted) { |
217 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 217 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
218 | 218 |
| 219 PrintingContextDelegate* printing_context_delegate = |
| 220 static_cast<PrintingContextDelegate*>(printing_context_delegate_.get()); |
| 221 content::WebContents* web_contents = |
| 222 printing_context_delegate->GetWebContents(); |
| 223 |
219 #if defined(OS_ANDROID) | 224 #if defined(OS_ANDROID) |
220 if (is_scripted) { | 225 if (is_scripted) { |
221 PrintingContextDelegate* printing_context_delegate = | |
222 static_cast<PrintingContextDelegate*>(printing_context_delegate_.get()); | |
223 content::WebContents* web_contents = | |
224 printing_context_delegate->GetWebContents(); | |
225 TabAndroid* tab = | 226 TabAndroid* tab = |
226 web_contents ? TabAndroid::FromWebContents(web_contents) : nullptr; | 227 web_contents ? TabAndroid::FromWebContents(web_contents) : nullptr; |
227 | 228 |
228 // Regardless of whether the following call fails or not, the javascript | 229 // Regardless of whether the following call fails or not, the javascript |
229 // call will return since startPendingPrint will make it return immediately | 230 // call will return since startPendingPrint will make it return immediately |
230 // in case of error. | 231 // in case of error. |
231 if (tab) | 232 if (tab) |
232 tab->SetPendingPrint(); | 233 tab->SetPendingPrint(); |
233 } | 234 } |
234 #endif | 235 #endif |
235 | 236 |
| 237 // Running a dialog causes an exit to webpage-initiated fullscreen. |
| 238 // http://crbug.com/728276 |
| 239 if (web_contents->IsFullscreenForCurrentTab()) |
| 240 web_contents->ExitFullscreen(true); |
| 241 |
236 // weak_factory_ creates pointers valid only on owner_ thread. | 242 // weak_factory_ creates pointers valid only on owner_ thread. |
237 printing_context_->AskUserForSettings( | 243 printing_context_->AskUserForSettings( |
238 document_page_count, has_selection, is_scripted, | 244 document_page_count, has_selection, is_scripted, |
239 base::Bind(&PostOnOwnerThread, make_scoped_refptr(owner_), | 245 base::Bind(&PostOnOwnerThread, make_scoped_refptr(owner_), |
240 base::Bind(&PrintJobWorker::GetSettingsDone, | 246 base::Bind(&PrintJobWorker::GetSettingsDone, |
241 weak_factory_.GetWeakPtr()))); | 247 weak_factory_.GetWeakPtr()))); |
242 } | 248 } |
243 | 249 |
244 void PrintJobWorker::UseDefaultSettings() { | 250 void PrintJobWorker::UseDefaultSettings() { |
245 PrintingContext::Result result = printing_context_->UseDefaultSettings(); | 251 PrintingContext::Result result = printing_context_->UseDefaultSettings(); |
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
433 JobEventDetails::FAILED, 0, | 439 JobEventDetails::FAILED, 0, |
434 base::RetainedRef(document_), nullptr)); | 440 base::RetainedRef(document_), nullptr)); |
435 Cancel(); | 441 Cancel(); |
436 | 442 |
437 // Makes sure the variables are reinitialized. | 443 // Makes sure the variables are reinitialized. |
438 document_ = NULL; | 444 document_ = NULL; |
439 page_number_ = PageNumber::npos(); | 445 page_number_ = PageNumber::npos(); |
440 } | 446 } |
441 | 447 |
442 } // namespace printing | 448 } // namespace printing |
OLD | NEW |