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 |