| 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_preview_dialog_controller.h" | 5 #include "chrome/browser/printing/print_preview_dialog_controller.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 93 std::vector<WebUIMessageHandler*>* /* handlers */) const { | 93 std::vector<WebUIMessageHandler*>* /* handlers */) const { |
| 94 // PrintPreviewUI adds its own message handlers. | 94 // PrintPreviewUI adds its own message handlers. |
| 95 } | 95 } |
| 96 | 96 |
| 97 void PrintPreviewDialogDelegate::GetDialogSize(gfx::Size* size) const { | 97 void PrintPreviewDialogDelegate::GetDialogSize(gfx::Size* size) const { |
| 98 DCHECK(size); | 98 DCHECK(size); |
| 99 const gfx::Size kMinDialogSize(800, 480); | 99 const gfx::Size kMinDialogSize(800, 480); |
| 100 const int kBorder = 25; | 100 const int kBorder = 25; |
| 101 *size = kMinDialogSize; | 101 *size = kMinDialogSize; |
| 102 | 102 |
| 103 web_modal::WebContentsModalDialogHost* host = NULL; | 103 web_modal::WebContentsModalDialogHost* host = nullptr; |
| 104 content::WebContents* outermost_web_contents = | 104 content::WebContents* outermost_web_contents = |
| 105 guest_view::GuestViewBase::GetTopLevelWebContents(initiator_); | 105 guest_view::GuestViewBase::GetTopLevelWebContents(initiator_); |
| 106 Browser* browser = chrome::FindBrowserWithWebContents(outermost_web_contents); | 106 Browser* browser = chrome::FindBrowserWithWebContents(outermost_web_contents); |
| 107 if (browser) | 107 if (browser) |
| 108 host = browser->window()->GetWebContentsModalDialogHost(); | 108 host = browser->window()->GetWebContentsModalDialogHost(); |
| 109 | 109 |
| 110 if (host) | 110 if (host) |
| 111 size->SetToMax(host->GetMaximumDialogSize()); | 111 size->SetToMax(host->GetMaximumDialogSize()); |
| 112 else | 112 else |
| 113 size->SetToMax(outermost_web_contents->GetContainerBounds().size()); | 113 size->SetToMax(outermost_web_contents->GetContainerBounds().size()); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 143 namespace printing { | 143 namespace printing { |
| 144 | 144 |
| 145 PrintPreviewDialogController::PrintPreviewDialogController() | 145 PrintPreviewDialogController::PrintPreviewDialogController() |
| 146 : waiting_for_new_preview_page_(false), | 146 : waiting_for_new_preview_page_(false), |
| 147 is_creating_print_preview_dialog_(false) { | 147 is_creating_print_preview_dialog_(false) { |
| 148 } | 148 } |
| 149 | 149 |
| 150 // static | 150 // static |
| 151 PrintPreviewDialogController* PrintPreviewDialogController::GetInstance() { | 151 PrintPreviewDialogController* PrintPreviewDialogController::GetInstance() { |
| 152 if (!g_browser_process) | 152 if (!g_browser_process) |
| 153 return NULL; | 153 return nullptr; |
| 154 return g_browser_process->print_preview_dialog_controller(); | 154 return g_browser_process->print_preview_dialog_controller(); |
| 155 } | 155 } |
| 156 | 156 |
| 157 // static | 157 // static |
| 158 void PrintPreviewDialogController::PrintPreview(WebContents* initiator) { | 158 void PrintPreviewDialogController::PrintPreview(WebContents* initiator) { |
| 159 if (initiator->ShowingInterstitialPage()) | 159 if (initiator->ShowingInterstitialPage()) |
| 160 return; | 160 return; |
| 161 | 161 |
| 162 PrintPreviewDialogController* dialog_controller = GetInstance(); | 162 PrintPreviewDialogController* dialog_controller = GetInstance(); |
| 163 if (!dialog_controller) | 163 if (!dialog_controller) |
| (...skipping 26 matching lines...) Expand all Loading... |
| 190 | 190 |
| 191 for (it = preview_dialog_map_.begin(); | 191 for (it = preview_dialog_map_.begin(); |
| 192 it != preview_dialog_map_.end(); | 192 it != preview_dialog_map_.end(); |
| 193 ++it) { | 193 ++it) { |
| 194 // If |contents| is an initiator. | 194 // If |contents| is an initiator. |
| 195 if (contents == it->second) { | 195 if (contents == it->second) { |
| 196 // Return the associated preview dialog. | 196 // Return the associated preview dialog. |
| 197 return it->first; | 197 return it->first; |
| 198 } | 198 } |
| 199 } | 199 } |
| 200 return NULL; | 200 return nullptr; |
| 201 } | 201 } |
| 202 | 202 |
| 203 WebContents* PrintPreviewDialogController::GetInitiator( | 203 WebContents* PrintPreviewDialogController::GetInitiator( |
| 204 WebContents* preview_dialog) { | 204 WebContents* preview_dialog) { |
| 205 PrintPreviewDialogMap::iterator it = preview_dialog_map_.find(preview_dialog); | 205 PrintPreviewDialogMap::iterator it = preview_dialog_map_.find(preview_dialog); |
| 206 return (it != preview_dialog_map_.end()) ? it->second : NULL; | 206 return (it != preview_dialog_map_.end()) ? it->second : nullptr; |
| 207 } | 207 } |
| 208 | 208 |
| 209 void PrintPreviewDialogController::Observe( | 209 void PrintPreviewDialogController::Observe( |
| 210 int type, | 210 int type, |
| 211 const content::NotificationSource& source, | 211 const content::NotificationSource& source, |
| 212 const content::NotificationDetails& details) { | 212 const content::NotificationDetails& details) { |
| 213 if (type == content::NOTIFICATION_RENDERER_PROCESS_CLOSED) { | 213 if (type == content::NOTIFICATION_RENDERER_PROCESS_CLOSED) { |
| 214 OnRendererProcessClosed( | 214 OnRendererProcessClosed( |
| 215 content::Source<content::RenderProcessHost>(source).ptr()); | 215 content::Source<content::RenderProcessHost>(source).ptr()); |
| 216 } else if (type == content::NOTIFICATION_WEB_CONTENTS_DESTROYED) { | 216 } else if (type == content::NOTIFICATION_WEB_CONTENTS_DESTROYED) { |
| (...skipping 28 matching lines...) Expand all Loading... |
| 245 url.host() == chrome::kChromeUIPrintHost); | 245 url.host() == chrome::kChromeUIPrintHost); |
| 246 } | 246 } |
| 247 | 247 |
| 248 void PrintPreviewDialogController::EraseInitiatorInfo( | 248 void PrintPreviewDialogController::EraseInitiatorInfo( |
| 249 WebContents* preview_dialog) { | 249 WebContents* preview_dialog) { |
| 250 PrintPreviewDialogMap::iterator it = preview_dialog_map_.find(preview_dialog); | 250 PrintPreviewDialogMap::iterator it = preview_dialog_map_.find(preview_dialog); |
| 251 if (it == preview_dialog_map_.end()) | 251 if (it == preview_dialog_map_.end()) |
| 252 return; | 252 return; |
| 253 | 253 |
| 254 RemoveObservers(it->second); | 254 RemoveObservers(it->second); |
| 255 preview_dialog_map_[preview_dialog] = NULL; | 255 preview_dialog_map_[preview_dialog] = nullptr; |
| 256 } | 256 } |
| 257 | 257 |
| 258 PrintPreviewDialogController::~PrintPreviewDialogController() {} | 258 PrintPreviewDialogController::~PrintPreviewDialogController() {} |
| 259 | 259 |
| 260 void PrintPreviewDialogController::OnRendererProcessClosed( | 260 void PrintPreviewDialogController::OnRendererProcessClosed( |
| 261 content::RenderProcessHost* rph) { | 261 content::RenderProcessHost* rph) { |
| 262 // Store contents in a vector and deal with them after iterating through | 262 // Store contents in a vector and deal with them after iterating through |
| 263 // |preview_dialog_map_| because RemoveFoo() can change |preview_dialog_map_|. | 263 // |preview_dialog_map_| because RemoveFoo() can change |preview_dialog_map_|. |
| 264 std::vector<WebContents*> closed_initiators; | 264 std::vector<WebContents*> closed_initiators; |
| 265 std::vector<WebContents*> closed_preview_dialogs; | 265 std::vector<WebContents*> closed_preview_dialogs; |
| (...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 419 } | 419 } |
| 420 } | 420 } |
| 421 | 421 |
| 422 void PrintPreviewDialogController::RemoveInitiator( | 422 void PrintPreviewDialogController::RemoveInitiator( |
| 423 WebContents* initiator) { | 423 WebContents* initiator) { |
| 424 WebContents* preview_dialog = GetPrintPreviewForContents(initiator); | 424 WebContents* preview_dialog = GetPrintPreviewForContents(initiator); |
| 425 DCHECK(preview_dialog); | 425 DCHECK(preview_dialog); |
| 426 // Update the map entry first, so when the print preview dialog gets destroyed | 426 // Update the map entry first, so when the print preview dialog gets destroyed |
| 427 // and reaches RemovePreviewDialog(), it does not attempt to also remove the | 427 // and reaches RemovePreviewDialog(), it does not attempt to also remove the |
| 428 // initiator's observers. | 428 // initiator's observers. |
| 429 preview_dialog_map_[preview_dialog] = NULL; | 429 preview_dialog_map_[preview_dialog] = nullptr; |
| 430 RemoveObservers(initiator); | 430 RemoveObservers(initiator); |
| 431 | 431 |
| 432 PrintViewManager::FromWebContents(initiator)->PrintPreviewDone(); | 432 PrintViewManager::FromWebContents(initiator)->PrintPreviewDone(); |
| 433 | 433 |
| 434 // initiator is closed. Close the print preview dialog too. | 434 // initiator is closed. Close the print preview dialog too. |
| 435 if (content::WebUI* web_ui = preview_dialog->GetWebUI()) { | 435 if (content::WebUI* web_ui = preview_dialog->GetWebUI()) { |
| 436 PrintPreviewUI* print_preview_ui = | 436 PrintPreviewUI* print_preview_ui = |
| 437 static_cast<PrintPreviewUI*>(web_ui->GetController()); | 437 static_cast<PrintPreviewUI*>(web_ui->GetController()); |
| 438 if (print_preview_ui) | 438 if (print_preview_ui) |
| 439 print_preview_ui->OnInitiatorClosed(); | 439 print_preview_ui->OnInitiatorClosed(); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 456 static_cast<PrintPreviewUI*>(web_ui->GetController()); | 456 static_cast<PrintPreviewUI*>(web_ui->GetController()); |
| 457 if (print_preview_ui) | 457 if (print_preview_ui) |
| 458 print_preview_ui->OnPrintPreviewDialogDestroyed(); | 458 print_preview_ui->OnPrintPreviewDialogDestroyed(); |
| 459 } | 459 } |
| 460 | 460 |
| 461 preview_dialog_map_.erase(preview_dialog); | 461 preview_dialog_map_.erase(preview_dialog); |
| 462 RemoveObservers(preview_dialog); | 462 RemoveObservers(preview_dialog); |
| 463 } | 463 } |
| 464 | 464 |
| 465 } // namespace printing | 465 } // namespace printing |
| OLD | NEW |