2017-12-07 22:44:24 +01:00
|
|
|
diff --git chrome/browser/ui/BUILD.gn chrome/browser/ui/BUILD.gn
|
2018-02-15 01:12:09 +01:00
|
|
|
index 1a43eba4852b..eccb01ca818e 100644
|
2017-12-07 22:44:24 +01:00
|
|
|
--- chrome/browser/ui/BUILD.gn
|
|
|
|
+++ chrome/browser/ui/BUILD.gn
|
|
|
|
@@ -344,6 +344,7 @@ split_static_library("ui") {
|
|
|
|
"//base:i18n",
|
|
|
|
"//base/allocator:features",
|
|
|
|
"//cc/paint",
|
|
|
|
+ "//cef/libcef/features",
|
|
|
|
"//chrome:extra_resources",
|
|
|
|
"//chrome:resources",
|
|
|
|
"//chrome:strings",
|
2016-07-14 03:35:07 +02:00
|
|
|
diff --git chrome/browser/ui/cocoa/applescript/tab_applescript.mm chrome/browser/ui/cocoa/applescript/tab_applescript.mm
|
2017-12-07 22:44:24 +01:00
|
|
|
index e5ac419b8f4c..ced62e390bc4 100644
|
2016-07-14 03:35:07 +02:00
|
|
|
--- chrome/browser/ui/cocoa/applescript/tab_applescript.mm
|
|
|
|
+++ chrome/browser/ui/cocoa/applescript/tab_applescript.mm
|
2017-12-07 22:44:24 +01:00
|
|
|
@@ -9,7 +9,7 @@
|
2016-07-14 03:35:07 +02:00
|
|
|
#include "base/logging.h"
|
|
|
|
#import "base/mac/scoped_nsobject.h"
|
|
|
|
#include "base/strings/sys_string_conversions.h"
|
2016-11-23 21:54:29 +01:00
|
|
|
-#include "chrome/browser/printing/print_view_manager.h"
|
2017-12-07 22:44:24 +01:00
|
|
|
+#include "cef/libcef/features/features.h"
|
|
|
|
#include "chrome/browser/profiles/profile.h"
|
2016-07-14 03:35:07 +02:00
|
|
|
#include "chrome/browser/sessions/session_tab_helper.h"
|
|
|
|
#include "chrome/browser/ui/cocoa/applescript/apple_event_util.h"
|
2017-12-07 22:44:24 +01:00
|
|
|
@@ -27,6 +27,10 @@
|
2016-11-23 21:54:29 +01:00
|
|
|
#include "content/public/browser/web_contents_delegate.h"
|
|
|
|
#include "url/gurl.h"
|
|
|
|
|
2017-12-07 22:44:24 +01:00
|
|
|
+#if !BUILDFLAG(ENABLE_CEF)
|
2016-11-23 21:54:29 +01:00
|
|
|
+#include "chrome/browser/printing/print_view_manager.h"
|
|
|
|
+#endif
|
|
|
|
+
|
|
|
|
using content::NavigationController;
|
|
|
|
using content::NavigationEntry;
|
|
|
|
using content::OpenURLParams;
|
2017-12-07 22:44:24 +01:00
|
|
|
@@ -232,11 +236,15 @@ void ResumeAppleEventAndSendReply(NSAppleEventManagerSuspensionID suspension_id,
|
2016-07-14 03:35:07 +02:00
|
|
|
|
|
|
|
- (void)handlesPrintScriptCommand:(NSScriptCommand*)command {
|
|
|
|
AppleScript::LogAppleScriptUMA(AppleScript::AppleScriptCommand::TAB_PRINT);
|
2017-12-07 22:44:24 +01:00
|
|
|
+#if !BUILDFLAG(ENABLE_CEF)
|
2016-11-23 21:54:29 +01:00
|
|
|
bool initiated = printing::PrintViewManager::FromWebContents(webContents_)
|
|
|
|
->PrintNow(webContents_->GetMainFrame());
|
2016-07-14 03:35:07 +02:00
|
|
|
if (!initiated) {
|
|
|
|
AppleScript::SetError(AppleScript::errInitiatePrinting);
|
|
|
|
}
|
|
|
|
+#else
|
|
|
|
+ NOTIMPLEMENTED();
|
|
|
|
+#endif
|
|
|
|
}
|
|
|
|
|
|
|
|
- (void)handlesSaveScriptCommand:(NSScriptCommand*)command {
|
2017-12-07 22:44:24 +01:00
|
|
|
diff --git chrome/browser/ui/webui/settings/printing_handler.cc chrome/browser/ui/webui/settings/printing_handler.cc
|
|
|
|
index 45644030eb24..c894209e1530 100644
|
|
|
|
--- chrome/browser/ui/webui/settings/printing_handler.cc
|
|
|
|
+++ chrome/browser/ui/webui/settings/printing_handler.cc
|
|
|
|
@@ -6,9 +6,13 @@
|
|
|
|
|
|
|
|
#include "base/bind.h"
|
|
|
|
#include "base/bind_helpers.h"
|
|
|
|
-#include "chrome/browser/printing/printer_manager_dialog.h"
|
|
|
|
+#include "cef/libcef/features/features.h"
|
|
|
|
#include "content/public/browser/web_ui.h"
|
|
|
|
|
|
|
|
+#if !BUILDFLAG(ENABLE_CEF)
|
|
|
|
+#include "chrome/browser/printing/printer_manager_dialog.h"
|
|
|
|
+#endif
|
|
|
|
+
|
|
|
|
namespace settings {
|
|
|
|
|
|
|
|
PrintingHandler::PrintingHandler() {}
|
|
|
|
@@ -27,7 +31,11 @@ void PrintingHandler::OnJavascriptAllowed() {}
|
|
|
|
void PrintingHandler::OnJavascriptDisallowed() {}
|
|
|
|
|
|
|
|
void PrintingHandler::HandleOpenSystemPrintDialog(const base::ListValue* args) {
|
|
|
|
+#if !BUILDFLAG(ENABLE_CEF)
|
|
|
|
printing::PrinterManagerDialog::ShowPrinterManagerDialog();
|
|
|
|
+#else
|
|
|
|
+ NOTIMPLEMENTED();
|
|
|
|
+#endif
|
|
|
|
}
|
|
|
|
|
|
|
|
} // namespace settings
|
2018-02-15 01:12:09 +01:00
|
|
|
diff --git chrome/utility/printing_handler.cc chrome/utility/printing_handler.cc
|
|
|
|
index 1eb818639134..4525da919180 100644
|
|
|
|
--- chrome/utility/printing_handler.cc
|
|
|
|
+++ chrome/utility/printing_handler.cc
|
|
|
|
@@ -23,6 +23,7 @@ namespace printing {
|
2017-03-03 23:37:23 +01:00
|
|
|
|
2018-02-15 01:12:09 +01:00
|
|
|
namespace {
|
2017-03-03 23:37:23 +01:00
|
|
|
|
|
|
|
+#if BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
2018-02-15 01:12:09 +01:00
|
|
|
bool Send(IPC::Message* message) {
|
|
|
|
return content::UtilityThread::Get()->Send(message);
|
|
|
|
}
|
|
|
|
@@ -30,6 +31,7 @@ bool Send(IPC::Message* message) {
|
|
|
|
void ReleaseProcess() {
|
|
|
|
content::UtilityThread::Get()->ReleaseProcess();
|
|
|
|
}
|
|
|
|
+#endif // BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
|
|
|
|
|
|
|
} // namespace
|
|
|
|
|
2016-07-14 03:35:07 +02:00
|
|
|
diff --git components/printing/common/print_messages.cc components/printing/common/print_messages.cc
|
2018-02-15 01:12:09 +01:00
|
|
|
index ef1e25b11afe..a12e21450a59 100644
|
2016-07-14 03:35:07 +02:00
|
|
|
--- components/printing/common/print_messages.cc
|
|
|
|
+++ components/printing/common/print_messages.cc
|
2018-02-15 01:12:09 +01:00
|
|
|
@@ -129,7 +129,6 @@ void PrintMsg_PrintPages_Params::Reset() {
|
2016-02-02 22:32:44 +01:00
|
|
|
pages = std::vector<int>();
|
|
|
|
}
|
|
|
|
|
2016-11-23 21:54:29 +01:00
|
|
|
-#if BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
2016-02-02 22:32:44 +01:00
|
|
|
PrintHostMsg_RequestPrintPreview_Params::
|
|
|
|
PrintHostMsg_RequestPrintPreview_Params()
|
|
|
|
: is_modifiable(false),
|
2018-02-15 01:12:09 +01:00
|
|
|
@@ -151,4 +150,3 @@ PrintHostMsg_SetOptionsFromDocument_Params::
|
2016-02-02 22:32:44 +01:00
|
|
|
PrintHostMsg_SetOptionsFromDocument_Params::
|
|
|
|
~PrintHostMsg_SetOptionsFromDocument_Params() {
|
|
|
|
}
|
2016-11-23 21:54:29 +01:00
|
|
|
-#endif // BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
2016-07-14 03:35:07 +02:00
|
|
|
diff --git components/printing/common/print_messages.h components/printing/common/print_messages.h
|
2018-02-15 01:12:09 +01:00
|
|
|
index 6d02771d018d..cb8608f5b523 100644
|
2016-07-14 03:35:07 +02:00
|
|
|
--- components/printing/common/print_messages.h
|
|
|
|
+++ components/printing/common/print_messages.h
|
2018-02-15 01:12:09 +01:00
|
|
|
@@ -79,7 +79,6 @@ struct PrintMsg_PrintPages_Params {
|
2016-02-02 22:32:44 +01:00
|
|
|
std::vector<int> pages;
|
|
|
|
};
|
|
|
|
|
2016-11-23 21:54:29 +01:00
|
|
|
-#if BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
2016-02-02 22:32:44 +01:00
|
|
|
struct PrintHostMsg_RequestPrintPreview_Params {
|
|
|
|
PrintHostMsg_RequestPrintPreview_Params();
|
|
|
|
~PrintHostMsg_RequestPrintPreview_Params();
|
2018-02-15 01:12:09 +01:00
|
|
|
@@ -98,7 +97,6 @@ struct PrintHostMsg_SetOptionsFromDocument_Params {
|
2016-02-02 22:32:44 +01:00
|
|
|
printing::DuplexMode duplex;
|
|
|
|
printing::PageRanges page_ranges;
|
|
|
|
};
|
2016-11-23 21:54:29 +01:00
|
|
|
-#endif // BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
2016-02-02 22:32:44 +01:00
|
|
|
|
2017-12-07 22:44:24 +01:00
|
|
|
#endif // INTERNAL_COMPONENTS_PRINTING_COMMON_PRINT_MESSAGES_H_
|
2016-02-02 22:32:44 +01:00
|
|
|
|
2018-02-15 01:12:09 +01:00
|
|
|
@@ -189,7 +187,6 @@ IPC_STRUCT_TRAITS_BEGIN(printing::PageRange)
|
2016-02-02 22:32:44 +01:00
|
|
|
IPC_STRUCT_TRAITS_MEMBER(to)
|
|
|
|
IPC_STRUCT_TRAITS_END()
|
|
|
|
|
2016-11-23 21:54:29 +01:00
|
|
|
-#if BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
2016-02-02 22:32:44 +01:00
|
|
|
IPC_STRUCT_TRAITS_BEGIN(PrintHostMsg_RequestPrintPreview_Params)
|
|
|
|
IPC_STRUCT_TRAITS_MEMBER(is_modifiable)
|
|
|
|
IPC_STRUCT_TRAITS_MEMBER(webnode_only)
|
2018-02-15 01:12:09 +01:00
|
|
|
@@ -210,7 +207,6 @@ IPC_STRUCT_TRAITS_BEGIN(PrintHostMsg_SetOptionsFromDocument_Params)
|
2016-02-02 22:32:44 +01:00
|
|
|
// Specifies page range to be printed.
|
|
|
|
IPC_STRUCT_TRAITS_MEMBER(page_ranges)
|
|
|
|
IPC_STRUCT_TRAITS_END()
|
2016-11-23 21:54:29 +01:00
|
|
|
-#endif // BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
2016-02-02 22:32:44 +01:00
|
|
|
|
|
|
|
IPC_STRUCT_TRAITS_BEGIN(printing::PageSizeMargins)
|
|
|
|
IPC_STRUCT_TRAITS_MEMBER(content_width)
|
2018-02-15 01:12:09 +01:00
|
|
|
@@ -230,7 +226,6 @@ IPC_STRUCT_TRAITS_BEGIN(PrintMsg_PrintPages_Params)
|
2016-02-02 22:32:44 +01:00
|
|
|
IPC_STRUCT_TRAITS_MEMBER(pages)
|
|
|
|
IPC_STRUCT_TRAITS_END()
|
|
|
|
|
2016-11-23 21:54:29 +01:00
|
|
|
-#if BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
2016-02-02 22:32:44 +01:00
|
|
|
// Parameters to describe a rendered document.
|
|
|
|
IPC_STRUCT_BEGIN(PrintHostMsg_DidPreviewDocument_Params)
|
|
|
|
// A shared memory handle to metafile data.
|
2018-02-15 01:12:09 +01:00
|
|
|
@@ -281,7 +276,6 @@ IPC_STRUCT_BEGIN(PrintHostMsg_DidGetPreviewPageCount_Params)
|
2016-02-02 22:32:44 +01:00
|
|
|
// Indicates whether the existing preview data needs to be cleared or not.
|
|
|
|
IPC_STRUCT_MEMBER(bool, clear_preview_data)
|
|
|
|
IPC_STRUCT_END()
|
2016-11-23 21:54:29 +01:00
|
|
|
-#endif // BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
2016-02-02 22:32:44 +01:00
|
|
|
|
|
|
|
// Parameters to describe a rendered page.
|
2018-02-15 01:12:09 +01:00
|
|
|
IPC_STRUCT_BEGIN(PrintHostMsg_DidPrintDocument_Params)
|
|
|
|
@@ -321,10 +315,8 @@ IPC_STRUCT_END()
|
2016-02-02 22:32:44 +01:00
|
|
|
|
|
|
|
// Messages sent from the browser to the renderer.
|
|
|
|
|
2016-11-23 21:54:29 +01:00
|
|
|
-#if BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
|
|
|
// Tells the RenderFrame to initiate print preview for the entire document.
|
|
|
|
IPC_MESSAGE_ROUTED1(PrintMsg_InitiatePrintPreview, bool /* has_selection */)
|
|
|
|
-#endif
|
2016-02-02 22:32:44 +01:00
|
|
|
|
2016-11-23 21:54:29 +01:00
|
|
|
// Tells the RenderFrame to initiate printing or print preview for a particular
|
|
|
|
// node, depending on which mode the RenderFrame is in.
|
2018-02-15 01:12:09 +01:00
|
|
|
@@ -346,13 +338,13 @@ IPC_MESSAGE_ROUTED1(PrintMsg_PrintingDone,
|
2016-11-23 21:54:29 +01:00
|
|
|
// Tells the RenderFrame whether printing is enabled or not.
|
|
|
|
IPC_MESSAGE_ROUTED1(PrintMsg_SetPrintingEnabled, bool /* enabled */)
|
2016-02-02 22:32:44 +01:00
|
|
|
|
2016-11-23 21:54:29 +01:00
|
|
|
-#if BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
|
|
|
// Tells the RenderFrame to switch the CSS to print media type, renders every
|
2016-02-02 22:32:44 +01:00
|
|
|
// requested pages for print preview using the given |settings|. This gets
|
|
|
|
// called multiple times as the user updates settings.
|
|
|
|
IPC_MESSAGE_ROUTED1(PrintMsg_PrintPreview,
|
|
|
|
base::DictionaryValue /* settings */)
|
|
|
|
|
2017-10-20 19:45:20 +02:00
|
|
|
+#if BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
|
|
|
// Tells the RenderFrame that print preview dialog was closed.
|
|
|
|
IPC_MESSAGE_ROUTED0(PrintMsg_ClosePrintPreviewDialog)
|
|
|
|
#endif
|
2018-02-15 01:12:09 +01:00
|
|
|
@@ -412,7 +404,6 @@ IPC_MESSAGE_CONTROL3(PrintHostMsg_TempFileForPrintingWritten,
|
2017-07-27 01:19:27 +02:00
|
|
|
int /* page count */)
|
2016-02-02 22:32:44 +01:00
|
|
|
#endif // defined(OS_ANDROID)
|
|
|
|
|
2016-11-23 21:54:29 +01:00
|
|
|
-#if BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
2016-02-02 22:32:44 +01:00
|
|
|
// Asks the browser to do print preview.
|
|
|
|
IPC_MESSAGE_ROUTED1(PrintHostMsg_RequestPrintPreview,
|
|
|
|
PrintHostMsg_RequestPrintPreview_Params /* params */)
|
2018-02-15 01:12:09 +01:00
|
|
|
@@ -446,7 +437,6 @@ IPC_SYNC_MESSAGE_ROUTED2_1(PrintHostMsg_CheckForCancel,
|
2016-02-02 22:32:44 +01:00
|
|
|
// The memory handle in this message is already valid in the browser process.
|
|
|
|
IPC_MESSAGE_ROUTED1(PrintHostMsg_MetafileReadyForPrinting,
|
|
|
|
PrintHostMsg_DidPreviewDocument_Params /* params */)
|
2016-11-23 21:54:29 +01:00
|
|
|
-#endif // BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
2016-02-02 22:32:44 +01:00
|
|
|
|
|
|
|
// This is sent when there are invalid printer settings.
|
|
|
|
IPC_MESSAGE_ROUTED0(PrintHostMsg_ShowInvalidPrinterSettingsError)
|
2018-02-15 01:12:09 +01:00
|
|
|
@@ -455,7 +445,6 @@ IPC_MESSAGE_ROUTED0(PrintHostMsg_ShowInvalidPrinterSettingsError)
|
2016-02-02 22:32:44 +01:00
|
|
|
IPC_MESSAGE_ROUTED1(PrintHostMsg_PrintingFailed,
|
|
|
|
int /* document cookie */)
|
|
|
|
|
2016-11-23 21:54:29 +01:00
|
|
|
-#if BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
2016-02-02 22:32:44 +01:00
|
|
|
// Tell the browser print preview failed.
|
|
|
|
IPC_MESSAGE_ROUTED1(PrintHostMsg_PrintPreviewFailed,
|
|
|
|
int /* document cookie */)
|
2018-02-15 01:12:09 +01:00
|
|
|
@@ -482,6 +471,5 @@ IPC_MESSAGE_ROUTED1(PrintHostMsg_ShowScriptedPrintPreview,
|
2016-02-02 22:32:44 +01:00
|
|
|
// Notify the browser to set print presets based on source PDF document.
|
|
|
|
IPC_MESSAGE_ROUTED1(PrintHostMsg_SetOptionsFromDocument,
|
|
|
|
PrintHostMsg_SetOptionsFromDocument_Params /* params */)
|
2016-11-23 21:54:29 +01:00
|
|
|
-#endif // BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
2017-12-07 22:44:24 +01:00
|
|
|
|
|
|
|
#endif // COMPONENTS_PRINTING_COMMON_PRINT_MESSAGES_H_
|
2017-09-06 23:40:58 +02:00
|
|
|
diff --git components/printing/renderer/print_render_frame_helper.cc components/printing/renderer/print_render_frame_helper.cc
|
2018-02-15 01:12:09 +01:00
|
|
|
index 86c3b7a291e3..7a645cea6ebe 100644
|
2017-09-06 23:40:58 +02:00
|
|
|
--- components/printing/renderer/print_render_frame_helper.cc
|
|
|
|
+++ components/printing/renderer/print_render_frame_helper.cc
|
2018-02-15 01:12:09 +01:00
|
|
|
@@ -322,7 +322,6 @@ bool PrintingNodeOrPdfFrame(const blink::WebLocalFrame* frame,
|
2017-04-20 21:28:17 +02:00
|
|
|
return plugin && plugin->SupportsPaginatedPrint();
|
2016-02-02 22:32:44 +01:00
|
|
|
}
|
|
|
|
|
2016-11-23 21:54:29 +01:00
|
|
|
-#if BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
2016-02-02 22:32:44 +01:00
|
|
|
// Returns true if the current destination printer is PRINT_TO_PDF.
|
|
|
|
bool IsPrintToPdfRequested(const base::DictionaryValue& job_settings) {
|
|
|
|
bool print_to_pdf = false;
|
2018-02-15 01:12:09 +01:00
|
|
|
@@ -344,7 +343,6 @@ bool PrintingFrameHasPageSizeStyle(blink::WebLocalFrame* frame,
|
2016-02-02 22:32:44 +01:00
|
|
|
}
|
|
|
|
return frame_has_custom_page_size_style;
|
|
|
|
}
|
2016-11-23 21:54:29 +01:00
|
|
|
-#endif // BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
2016-02-02 22:32:44 +01:00
|
|
|
|
2017-01-23 18:36:54 +01:00
|
|
|
#if BUILDFLAG(ENABLE_PRINTING)
|
2016-02-02 22:32:44 +01:00
|
|
|
// Disable scaling when either:
|
2018-02-15 01:12:09 +01:00
|
|
|
@@ -401,7 +399,6 @@ MarginType GetMarginsForPdf(blink::WebLocalFrame* frame,
|
2016-02-02 22:32:44 +01:00
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
2016-11-23 21:54:29 +01:00
|
|
|
-#if BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
2016-02-02 22:32:44 +01:00
|
|
|
bool FitToPageEnabled(const base::DictionaryValue& job_settings) {
|
|
|
|
bool fit_to_paper_size = false;
|
|
|
|
if (!job_settings.GetBoolean(kSettingFitToPageEnabled, &fit_to_paper_size)) {
|
2018-02-15 01:12:09 +01:00
|
|
|
@@ -443,7 +440,6 @@ blink::WebPrintScalingOption GetPrintScalingOption(
|
2016-02-02 22:32:44 +01:00
|
|
|
}
|
2017-04-20 21:28:17 +02:00
|
|
|
return blink::kWebPrintScalingOptionFitToPrintableArea;
|
2016-02-02 22:32:44 +01:00
|
|
|
}
|
2016-11-23 21:54:29 +01:00
|
|
|
-#endif // BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
2016-02-02 22:32:44 +01:00
|
|
|
|
2016-11-23 21:54:29 +01:00
|
|
|
// Helper function to scale and round an integer value with a double valued
|
|
|
|
// scaling.
|
2018-02-15 01:12:09 +01:00
|
|
|
@@ -952,6 +948,7 @@ PrintRenderFrameHelper::PrintRenderFrameHelper(
|
|
|
|
notify_browser_of_print_failure_(true),
|
2016-01-06 20:20:54 +01:00
|
|
|
delegate_(std::move(delegate)),
|
2015-07-24 02:06:56 +02:00
|
|
|
print_node_in_progress_(false),
|
|
|
|
+ force_print_preview_(false),
|
|
|
|
is_loading_(false),
|
|
|
|
is_scripted_preview_delayed_(false),
|
|
|
|
ipc_nesting_level_(0),
|
2018-02-15 01:12:09 +01:00
|
|
|
@@ -1013,10 +1010,8 @@ void PrintRenderFrameHelper::ScriptedPrint(bool user_initiated) {
|
2016-02-02 22:32:44 +01:00
|
|
|
return;
|
|
|
|
|
|
|
|
if (g_is_preview_enabled) {
|
2016-11-23 21:54:29 +01:00
|
|
|
-#if BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
|
|
|
print_preview_context_.InitWithFrame(web_frame);
|
2016-02-02 22:32:44 +01:00
|
|
|
RequestPrintPreview(PRINT_PREVIEW_SCRIPTED);
|
|
|
|
-#endif
|
|
|
|
} else {
|
2016-11-23 21:54:29 +01:00
|
|
|
#if BUILDFLAG(ENABLE_BASIC_PRINTING)
|
2017-10-20 19:45:20 +02:00
|
|
|
auto weak_this = weak_ptr_factory_.GetWeakPtr();
|
2018-02-15 01:12:09 +01:00
|
|
|
@@ -1048,10 +1043,10 @@ bool PrintRenderFrameHelper::OnMessageReceived(const IPC::Message& message) {
|
2016-02-02 22:32:44 +01:00
|
|
|
IPC_MESSAGE_HANDLER(PrintMsg_PrintPages, OnPrintPages)
|
|
|
|
IPC_MESSAGE_HANDLER(PrintMsg_PrintForSystemDialog, OnPrintForSystemDialog)
|
2016-11-23 21:54:29 +01:00
|
|
|
#endif // BUILDFLAG(ENABLE_BASIC_PRINTING)
|
|
|
|
-#if BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
2016-02-02 22:32:44 +01:00
|
|
|
IPC_MESSAGE_HANDLER(PrintMsg_InitiatePrintPreview, OnInitiatePrintPreview)
|
|
|
|
IPC_MESSAGE_HANDLER(PrintMsg_PrintPreview, OnPrintPreview)
|
|
|
|
IPC_MESSAGE_HANDLER(PrintMsg_PrintingDone, OnPrintingDone)
|
2017-10-20 19:45:20 +02:00
|
|
|
+#if BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
|
|
|
IPC_MESSAGE_HANDLER(PrintMsg_ClosePrintPreviewDialog,
|
|
|
|
OnClosePrintPreviewDialog)
|
|
|
|
#endif // BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
2018-02-15 01:12:09 +01:00
|
|
|
@@ -1134,7 +1129,6 @@ void PrintRenderFrameHelper::UpdateFrameMarginsCssInfo(
|
2016-02-02 22:32:44 +01:00
|
|
|
ignore_css_margins_ = (margins_type != DEFAULT_MARGINS);
|
|
|
|
}
|
|
|
|
|
2016-11-23 21:54:29 +01:00
|
|
|
-#if BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
2017-09-06 23:40:58 +02:00
|
|
|
void PrintRenderFrameHelper::OnPrintPreview(
|
|
|
|
const base::DictionaryValue& settings) {
|
2016-02-02 22:32:44 +01:00
|
|
|
if (ipc_nesting_level_ > 1)
|
2018-02-15 01:12:09 +01:00
|
|
|
@@ -1326,7 +1320,7 @@ bool PrintRenderFrameHelper::CreatePreviewDocument() {
|
2016-02-02 22:32:44 +01:00
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
2016-11-23 21:54:29 +01:00
|
|
|
-#if !defined(OS_MACOSX) && BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
2016-02-02 22:32:44 +01:00
|
|
|
+#if !defined(OS_MACOSX)
|
2017-09-06 23:40:58 +02:00
|
|
|
bool PrintRenderFrameHelper::RenderPreviewPage(
|
2016-02-02 22:32:44 +01:00
|
|
|
int page_number,
|
|
|
|
const PrintMsg_Print_Params& print_params) {
|
2018-02-15 01:12:09 +01:00
|
|
|
@@ -1356,7 +1350,7 @@ bool PrintRenderFrameHelper::RenderPreviewPage(
|
2016-02-02 22:32:44 +01:00
|
|
|
}
|
|
|
|
return PreviewPageRendered(page_number, draft_metafile.get());
|
|
|
|
}
|
2016-11-23 21:54:29 +01:00
|
|
|
-#endif // !defined(OS_MACOSX) && BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
2016-02-02 22:32:44 +01:00
|
|
|
+#endif // !defined(OS_MACOSX)
|
|
|
|
|
2017-09-06 23:40:58 +02:00
|
|
|
bool PrintRenderFrameHelper::FinalizePrintReadyDocument() {
|
2016-02-02 22:32:44 +01:00
|
|
|
DCHECK(!is_print_ready_metafile_sent_);
|
2018-02-15 01:12:09 +01:00
|
|
|
@@ -1385,7 +1379,6 @@ bool PrintRenderFrameHelper::FinalizePrintReadyDocument() {
|
2016-02-02 22:32:44 +01:00
|
|
|
Send(new PrintHostMsg_MetafileReadyForPrinting(routing_id(), preview_params));
|
|
|
|
return true;
|
|
|
|
}
|
2016-11-23 21:54:29 +01:00
|
|
|
-#endif // BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
2016-02-02 22:32:44 +01:00
|
|
|
|
2017-09-06 23:40:58 +02:00
|
|
|
void PrintRenderFrameHelper::OnPrintingDone(bool success) {
|
2016-02-02 22:32:44 +01:00
|
|
|
if (ipc_nesting_level_ > 1)
|
2018-02-15 01:12:09 +01:00
|
|
|
@@ -1400,7 +1393,6 @@ void PrintRenderFrameHelper::OnSetPrintingEnabled(bool enabled) {
|
2016-11-23 21:54:29 +01:00
|
|
|
is_printing_enabled_ = enabled;
|
2016-02-02 22:32:44 +01:00
|
|
|
}
|
|
|
|
|
2016-11-23 21:54:29 +01:00
|
|
|
-#if BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
2017-09-06 23:40:58 +02:00
|
|
|
void PrintRenderFrameHelper::OnInitiatePrintPreview(bool has_selection) {
|
2016-02-02 22:32:44 +01:00
|
|
|
if (ipc_nesting_level_ > 1)
|
|
|
|
return;
|
2018-02-15 01:12:09 +01:00
|
|
|
@@ -1411,7 +1403,9 @@ void PrintRenderFrameHelper::OnInitiatePrintPreview(bool has_selection) {
|
2015-07-24 02:06:56 +02:00
|
|
|
// that instead.
|
|
|
|
auto plugin = delegate_->GetPdfElement(frame);
|
2017-04-20 21:28:17 +02:00
|
|
|
if (!plugin.IsNull()) {
|
2015-07-24 02:06:56 +02:00
|
|
|
+ force_print_preview_ = true;
|
|
|
|
PrintNode(plugin);
|
|
|
|
+ force_print_preview_ = false;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
print_preview_context_.InitWithFrame(frame);
|
2018-02-15 01:12:09 +01:00
|
|
|
@@ -1420,10 +1414,11 @@ void PrintRenderFrameHelper::OnInitiatePrintPreview(bool has_selection) {
|
2016-02-02 22:32:44 +01:00
|
|
|
: PRINT_PREVIEW_USER_INITIATED_ENTIRE_FRAME);
|
|
|
|
}
|
2017-10-20 19:45:20 +02:00
|
|
|
|
|
|
|
+#if BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
|
|
|
void PrintRenderFrameHelper::OnClosePrintPreviewDialog() {
|
|
|
|
print_preview_context_.source_frame()->DispatchAfterPrintEvent();
|
|
|
|
}
|
2016-02-02 22:32:44 +01:00
|
|
|
-#endif
|
2017-10-20 19:45:20 +02:00
|
|
|
+#endif // BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
2016-02-02 22:32:44 +01:00
|
|
|
|
2017-09-06 23:40:58 +02:00
|
|
|
bool PrintRenderFrameHelper::IsPrintingEnabled() const {
|
2016-11-23 21:54:29 +01:00
|
|
|
return is_printing_enabled_;
|
2018-02-15 01:12:09 +01:00
|
|
|
@@ -1445,11 +1440,9 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) {
|
2017-01-23 18:36:54 +01:00
|
|
|
|
|
|
|
print_node_in_progress_ = true;
|
2015-07-24 02:06:56 +02:00
|
|
|
|
2016-02-02 22:32:44 +01:00
|
|
|
- if (g_is_preview_enabled) {
|
2016-11-23 21:54:29 +01:00
|
|
|
-#if BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
2016-02-02 22:32:44 +01:00
|
|
|
+ if (g_is_preview_enabled || force_print_preview_) {
|
|
|
|
print_preview_context_.InitWithNode(node);
|
|
|
|
RequestPrintPreview(PRINT_PREVIEW_USER_INITIATED_CONTEXT_NODE);
|
|
|
|
-#endif
|
2015-07-24 02:06:56 +02:00
|
|
|
} else {
|
2016-11-23 21:54:29 +01:00
|
|
|
#if BUILDFLAG(ENABLE_BASIC_PRINTING)
|
2017-01-23 18:36:54 +01:00
|
|
|
// Make a copy of the node, in case RenderView::OnContextMenuClosed() resets
|
2018-02-15 01:12:09 +01:00
|
|
|
@@ -1539,7 +1532,6 @@ void PrintRenderFrameHelper::DidFinishPrinting(PrintingResult result) {
|
2016-02-02 22:32:44 +01:00
|
|
|
}
|
|
|
|
break;
|
|
|
|
|
2016-11-23 21:54:29 +01:00
|
|
|
-#if BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
2016-02-02 22:32:44 +01:00
|
|
|
case FAIL_PREVIEW:
|
2017-07-27 01:19:27 +02:00
|
|
|
if (!is_print_ready_metafile_sent_) {
|
|
|
|
if (notify_browser_of_print_failure_) {
|
2018-02-15 01:12:09 +01:00
|
|
|
@@ -1556,7 +1548,6 @@ void PrintRenderFrameHelper::DidFinishPrinting(PrintingResult result) {
|
2017-07-27 01:19:27 +02:00
|
|
|
cookie));
|
|
|
|
print_preview_context_.Failed(false);
|
2016-02-02 22:32:44 +01:00
|
|
|
break;
|
2016-11-23 21:54:29 +01:00
|
|
|
-#endif // BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
2016-02-02 22:32:44 +01:00
|
|
|
}
|
|
|
|
prep_frame_view_.reset();
|
|
|
|
print_pages_params_.reset();
|
2018-02-15 01:12:09 +01:00
|
|
|
@@ -1727,7 +1718,6 @@ bool PrintRenderFrameHelper::CalculateNumberOfPages(blink::WebLocalFrame* frame,
|
2016-02-02 22:32:44 +01:00
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
2016-11-23 21:54:29 +01:00
|
|
|
-#if BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
2017-09-06 23:40:58 +02:00
|
|
|
bool PrintRenderFrameHelper::SetOptionsFromPdfDocument(
|
2016-02-02 22:32:44 +01:00
|
|
|
PrintHostMsg_SetOptionsFromDocument_Params* options) {
|
|
|
|
blink::WebLocalFrame* source_frame = print_preview_context_.source_frame();
|
2018-02-15 01:12:09 +01:00
|
|
|
@@ -1821,7 +1811,6 @@ bool PrintRenderFrameHelper::UpdatePrintSettings(
|
|
|
|
print_preview_context_.set_error(PREVIEW_ERROR_INVALID_PRINTER_SETTINGS);
|
2017-01-23 18:36:54 +01:00
|
|
|
return false;
|
2016-02-02 22:32:44 +01:00
|
|
|
}
|
2016-11-23 21:54:29 +01:00
|
|
|
-#endif // BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
2016-02-02 22:32:44 +01:00
|
|
|
|
2016-11-23 21:54:29 +01:00
|
|
|
#if BUILDFLAG(ENABLE_BASIC_PRINTING)
|
2017-09-06 23:40:58 +02:00
|
|
|
void PrintRenderFrameHelper::GetPrintSettingsFromUser(
|
2018-02-15 01:12:09 +01:00
|
|
|
@@ -1977,7 +1966,6 @@ bool PrintRenderFrameHelper::CopyMetafileDataToReadOnlySharedMem(
|
2016-03-16 03:55:59 +01:00
|
|
|
return true;
|
2016-02-02 22:32:44 +01:00
|
|
|
}
|
|
|
|
|
2016-11-23 21:54:29 +01:00
|
|
|
-#if BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
2017-09-06 23:40:58 +02:00
|
|
|
void PrintRenderFrameHelper::ShowScriptedPrintPreview() {
|
2016-02-02 22:32:44 +01:00
|
|
|
if (is_scripted_preview_delayed_) {
|
|
|
|
is_scripted_preview_delayed_ = false;
|
2018-02-15 01:12:09 +01:00
|
|
|
@@ -2112,7 +2100,6 @@ bool PrintRenderFrameHelper::PreviewPageRendered(int page_number,
|
2016-02-02 22:32:44 +01:00
|
|
|
Send(new PrintHostMsg_DidPreviewPage(routing_id(), preview_page_params));
|
|
|
|
return true;
|
|
|
|
}
|
2016-11-23 21:54:29 +01:00
|
|
|
-#endif // BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
2016-02-02 22:32:44 +01:00
|
|
|
|
2017-09-06 23:40:58 +02:00
|
|
|
PrintRenderFrameHelper::PrintPreviewContext::PrintPreviewContext()
|
2016-02-02 22:32:44 +01:00
|
|
|
: total_page_count_(0),
|
2017-09-06 23:40:58 +02:00
|
|
|
diff --git components/printing/renderer/print_render_frame_helper.h components/printing/renderer/print_render_frame_helper.h
|
2018-02-15 01:12:09 +01:00
|
|
|
index b087b9efe6ca..338710326b17 100644
|
2017-09-06 23:40:58 +02:00
|
|
|
--- components/printing/renderer/print_render_frame_helper.h
|
|
|
|
+++ components/printing/renderer/print_render_frame_helper.h
|
2017-12-07 22:44:24 +01:00
|
|
|
@@ -147,10 +147,8 @@ class PrintRenderFrameHelper
|
2016-02-02 22:32:44 +01:00
|
|
|
OK,
|
|
|
|
FAIL_PRINT_INIT,
|
|
|
|
FAIL_PRINT,
|
2016-11-23 21:54:29 +01:00
|
|
|
-#if BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
2016-02-02 22:32:44 +01:00
|
|
|
FAIL_PREVIEW,
|
2017-07-27 01:19:27 +02:00
|
|
|
INVALID_SETTINGS,
|
2016-02-02 22:32:44 +01:00
|
|
|
-#endif
|
|
|
|
};
|
|
|
|
|
|
|
|
enum PrintPreviewErrorBuckets {
|
2018-02-15 01:12:09 +01:00
|
|
|
@@ -186,9 +184,9 @@ class PrintRenderFrameHelper
|
|
|
|
void OnPrintPages();
|
2016-02-02 22:32:44 +01:00
|
|
|
void OnPrintForSystemDialog();
|
2016-11-23 21:54:29 +01:00
|
|
|
#endif // BUILDFLAG(ENABLE_BASIC_PRINTING)
|
|
|
|
-#if BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
|
|
|
void OnInitiatePrintPreview(bool has_selection);
|
2016-02-02 22:32:44 +01:00
|
|
|
void OnPrintPreview(const base::DictionaryValue& settings);
|
2017-10-20 19:45:20 +02:00
|
|
|
+#if BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
|
|
|
void OnClosePrintPreviewDialog();
|
|
|
|
#endif // BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
2016-02-02 22:32:44 +01:00
|
|
|
void OnPrintingDone(bool success);
|
2018-02-15 01:12:09 +01:00
|
|
|
@@ -203,7 +201,6 @@ class PrintRenderFrameHelper
|
2016-02-02 22:32:44 +01:00
|
|
|
// Update |ignore_css_margins_| based on settings.
|
|
|
|
void UpdateFrameMarginsCssInfo(const base::DictionaryValue& settings);
|
|
|
|
|
2016-11-23 21:54:29 +01:00
|
|
|
-#if BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
2016-02-02 22:32:44 +01:00
|
|
|
// Prepare frame for creating preview document.
|
|
|
|
void PrepareFrameForPreviewDocument();
|
|
|
|
|
2018-02-15 01:12:09 +01:00
|
|
|
@@ -220,7 +217,6 @@ class PrintRenderFrameHelper
|
2016-02-02 22:32:44 +01:00
|
|
|
|
|
|
|
// Finalize the print ready preview document.
|
|
|
|
bool FinalizePrintReadyDocument();
|
2016-11-23 21:54:29 +01:00
|
|
|
-#endif // BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
2016-02-02 22:32:44 +01:00
|
|
|
|
2016-11-23 21:54:29 +01:00
|
|
|
// Enable/Disable printing.
|
|
|
|
void OnSetPrintingEnabled(bool enabled);
|
2018-02-15 01:12:09 +01:00
|
|
|
@@ -250,7 +246,6 @@ class PrintRenderFrameHelper
|
2016-02-02 22:32:44 +01:00
|
|
|
const blink::WebNode& node,
|
|
|
|
int* number_of_pages);
|
|
|
|
|
2016-11-23 21:54:29 +01:00
|
|
|
-#if BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
2016-02-02 22:32:44 +01:00
|
|
|
// Set options for print preset from source PDF document.
|
|
|
|
bool SetOptionsFromPdfDocument(
|
|
|
|
PrintHostMsg_SetOptionsFromDocument_Params* options);
|
2018-02-15 01:12:09 +01:00
|
|
|
@@ -261,7 +256,6 @@ class PrintRenderFrameHelper
|
2016-02-02 22:32:44 +01:00
|
|
|
bool UpdatePrintSettings(blink::WebLocalFrame* frame,
|
|
|
|
const blink::WebNode& node,
|
|
|
|
const base::DictionaryValue& passed_job_settings);
|
2016-11-23 21:54:29 +01:00
|
|
|
-#endif // BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
2016-02-02 22:32:44 +01:00
|
|
|
|
2017-01-23 18:36:54 +01:00
|
|
|
#if BUILDFLAG(ENABLE_BASIC_PRINTING)
|
2016-02-02 22:32:44 +01:00
|
|
|
// Get final print settings from the user.
|
2017-12-07 22:44:24 +01:00
|
|
|
@@ -347,7 +341,6 @@ class PrintRenderFrameHelper
|
2017-01-23 18:36:54 +01:00
|
|
|
bool IsScriptInitiatedPrintAllowed(blink::WebLocalFrame* frame,
|
2016-02-02 22:32:44 +01:00
|
|
|
bool user_initiated);
|
|
|
|
|
2016-11-23 21:54:29 +01:00
|
|
|
-#if BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
2016-02-02 22:32:44 +01:00
|
|
|
// Shows scripted print preview when options from plugin are available.
|
|
|
|
void ShowScriptedPrintPreview();
|
|
|
|
|
2017-12-07 22:44:24 +01:00
|
|
|
@@ -365,7 +358,6 @@ class PrintRenderFrameHelper
|
2016-02-02 22:32:44 +01:00
|
|
|
// |metafile| is the rendered page. Otherwise |metafile| is NULL.
|
|
|
|
// Returns true if print preview should continue, false on failure.
|
|
|
|
bool PreviewPageRendered(int page_number, PdfMetafileSkia* metafile);
|
2016-11-23 21:54:29 +01:00
|
|
|
-#endif // BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
2016-02-02 22:32:44 +01:00
|
|
|
|
|
|
|
void SetPrintPagesParams(const PrintMsg_PrintPages_Params& settings);
|
|
|
|
|
2018-02-15 01:12:09 +01:00
|
|
|
@@ -523,6 +515,7 @@ class PrintRenderFrameHelper
|
2015-07-24 02:06:56 +02:00
|
|
|
ScriptingThrottler scripting_throttler_;
|
|
|
|
|
|
|
|
bool print_node_in_progress_;
|
|
|
|
+ bool force_print_preview_;
|
|
|
|
PrintPreviewContext print_preview_context_;
|
|
|
|
bool is_loading_;
|
|
|
|
bool is_scripted_preview_delayed_;
|
2017-09-06 23:40:58 +02:00
|
|
|
diff --git components/printing/renderer/print_render_frame_helper_mac.mm components/printing/renderer/print_render_frame_helper_mac.mm
|
2017-12-07 22:44:24 +01:00
|
|
|
index 8cc4806de501..ba3d0dc6e621 100644
|
2017-09-06 23:40:58 +02:00
|
|
|
--- components/printing/renderer/print_render_frame_helper_mac.mm
|
|
|
|
+++ components/printing/renderer/print_render_frame_helper_mac.mm
|
2017-12-07 22:44:24 +01:00
|
|
|
@@ -18,7 +18,6 @@
|
|
|
|
|
|
|
|
namespace printing {
|
2015-03-24 16:40:08 +01:00
|
|
|
|
2016-11-23 21:54:29 +01:00
|
|
|
-#if BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
2017-09-06 23:40:58 +02:00
|
|
|
bool PrintRenderFrameHelper::RenderPreviewPage(
|
2016-02-02 22:32:44 +01:00
|
|
|
int page_number,
|
|
|
|
const PrintMsg_Print_Params& print_params) {
|
2017-12-07 22:44:24 +01:00
|
|
|
@@ -56,7 +55,6 @@ bool PrintRenderFrameHelper::RenderPreviewPage(
|
2015-03-24 16:40:08 +01:00
|
|
|
}
|
2016-02-02 22:32:44 +01:00
|
|
|
return PreviewPageRendered(page_number, draft_metafile.get());
|
|
|
|
}
|
2016-11-23 21:54:29 +01:00
|
|
|
-#endif // BUILDFLAG(ENABLE_PRINT_PREVIEW)
|
2015-03-24 16:40:08 +01:00
|
|
|
|
2017-12-07 22:44:24 +01:00
|
|
|
void PrintRenderFrameHelper::PrintPageInternal(
|
|
|
|
const PrintMsg_Print_Params& params,
|