Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(946)

Unified Diff: chrome/browser/ui/webui/print_preview/print_preview_handler.cc

Issue 2426503002: Make printing work better with OOPIF. (Closed)
Patch Set: Fix build, fix some tests Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/webui/print_preview/print_preview_handler.cc
diff --git a/chrome/browser/ui/webui/print_preview/print_preview_handler.cc b/chrome/browser/ui/webui/print_preview/print_preview_handler.cc
index 1119b974cb21344b9e07167d50ae48668930743d..e2ed4d1df7cae632a7507fe1468cc28e19bc5935 100644
--- a/chrome/browser/ui/webui/print_preview/print_preview_handler.cc
+++ b/chrome/browser/ui/webui/print_preview/print_preview_handler.cc
@@ -70,8 +70,8 @@
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/navigation_controller.h"
#include "content/public/browser/navigation_entry.h"
+#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/render_process_host.h"
-#include "content/public/browser/render_view_host.h"
#include "content/public/browser/web_contents.h"
#include "content/public/browser/web_ui.h"
#include "google_apis/gaia/oauth2_token_service.h"
@@ -95,8 +95,9 @@
#endif
using content::BrowserThread;
-using content::RenderViewHost;
+using content::RenderFrameHost;
using content::WebContents;
+using printing::PrintViewManager;
namespace {
@@ -409,8 +410,7 @@ void EnumeratePrintersOnBlockingPoolThread(base::ListValue* printers) {
print_backend->EnumeratePrinters(&printer_list);
for (const printing::PrinterBasicInfo& printer : printer_list) {
- std::unique_ptr<base::DictionaryValue> printer_info(
- new base::DictionaryValue);
+ auto printer_info = base::MakeUnique<base::DictionaryValue>();
const auto printer_name_description = GetPrinterNameAndDescription(printer);
const std::string& printer_name = printer_name_description.first;
const std::string& printer_description = printer_name_description.second;
@@ -473,7 +473,7 @@ GetPrinterCapabilitiesOnBlockingPoolThread(const std::string& device_name) {
const std::string& printer_name = printer_name_description.first;
const std::string& printer_description = printer_name_description.second;
- printer_info.reset(new base::DictionaryValue);
+ printer_info = base::MakeUnique<base::DictionaryValue>();
printer_info->SetString(kPrinterId, device_name);
printer_info->SetString(printing::kSettingPrinterName, printer_name);
printer_info->SetString(printing::kSettingPrinterDescription,
@@ -783,7 +783,11 @@ void PrintPreviewHandler::HandleGetPreview(const base::ListValue* args) {
++regenerate_preview_request_count_;
WebContents* initiator = GetInitiator();
- if (!initiator) {
+ content::RenderFrameHost* rfh =
+ initiator
+ ? PrintViewManager::FromWebContents(initiator)->print_preview_rfh()
+ : nullptr;
+ if (!rfh) {
ReportUserActionHistogram(INITIATOR_CLOSED);
print_preview_ui()->OnClosePrintPreviewDialog();
return;
@@ -841,8 +845,7 @@ void PrintPreviewHandler::HandleGetPreview(const base::ListValue* args) {
NOTREACHED();
}
- RenderViewHost* rvh = initiator->GetRenderViewHost();
- rvh->Send(new PrintMsg_PrintPreview(rvh->GetRoutingID(), *settings));
+ rfh->Send(new PrintMsg_PrintPreview(rfh->GetRoutingID(), *settings));
}
void PrintPreviewHandler::HandlePrint(const base::ListValue* args) {
@@ -1008,17 +1011,16 @@ void PrintPreviewHandler::HandlePrint(const base::ListValue* args) {
// Set ID to know whether printing is for preview.
settings->SetInteger(printing::kPreviewUIID,
print_preview_ui()->GetIDForPrintPreviewUI());
- RenderViewHost* rvh = preview_web_contents()->GetRenderViewHost();
- rvh->Send(new PrintMsg_PrintForPrintPreview(rvh->GetRoutingID(),
- *settings));
+ RenderFrameHost* rfh = preview_web_contents()->GetMainFrame();
+ rfh->Send(
+ new PrintMsg_PrintForPrintPreview(rfh->GetRoutingID(), *settings));
// For all other cases above, the preview dialog will stay open until the
// printing has finished. Then the dialog closes and PrintPreviewDone() gets
// called. In the case below, since the preview dialog will be hidden and
// not closed, we need to make this call.
if (initiator) {
- printing::PrintViewManager* print_view_manager =
- printing::PrintViewManager::FromWebContents(initiator);
+ auto* print_view_manager = PrintViewManager::FromWebContents(initiator);
print_view_manager->PrintPreviewDone();
}
#else
@@ -1156,8 +1158,7 @@ void PrintPreviewHandler::HandleShowSystemDialog(
if (!initiator)
return;
- printing::PrintViewManager* print_view_manager =
- printing::PrintViewManager::FromWebContents(initiator);
+ auto* print_view_manager = PrintViewManager::FromWebContents(initiator);
print_view_manager->PrintForSystemDialogNow(
base::Bind(&PrintPreviewHandler::ClosePreviewDialog,
weak_factory_.GetWeakPtr()));

Powered by Google App Engine
This is Rietveld 408576698