| 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 237bba967a6013be8075d1ae87087d520386b79e..eb42f2507ed7b6fe6f67cc762389ad6269fd8f1e 100644
|
| --- a/chrome/browser/ui/webui/print_preview/print_preview_handler.cc
|
| +++ b/chrome/browser/ui/webui/print_preview/print_preview_handler.cc
|
| @@ -30,6 +30,7 @@
|
| #include "base/values.h"
|
| #include "chrome/browser/app_mode/app_mode_utils.h"
|
| #include "chrome/browser/browser_process.h"
|
| +#include "chrome/browser/dom_distiller/tab_utils.h"
|
| #include "chrome/browser/platform_util.h"
|
| #include "chrome/browser/printing/print_dialog_cloud.h"
|
| #include "chrome/browser/printing/print_error_dialog.h"
|
| @@ -57,6 +58,7 @@
|
| #include "components/cloud_devices/common/cloud_device_description.h"
|
| #include "components/cloud_devices/common/cloud_devices_urls.h"
|
| #include "components/cloud_devices/common/printer_description.h"
|
| +#include "components/dom_distiller/core/url_utils.h"
|
| #include "components/printing/common/print_messages.h"
|
| #include "components/signin/core/browser/gaia_cookie_manager_service.h"
|
| #include "components/signin/core/browser/profile_oauth2_token_service.h"
|
| @@ -165,6 +167,8 @@ const char kHidePrintWithSystemDialogLink[] = "hidePrintWithSystemDialogLink";
|
| #endif
|
| // Name of a dictionary field holding the state of selection for document.
|
| const char kDocumentHasSelection[] = "documentHasSelection";
|
| +// Dictionary field indicating whether to simplify the page.
|
| +const char kPrintFriendlyEnabled[] = "printFriendlyEnabled";
|
|
|
| // Id of the predefined PDF printer.
|
| const char kLocalPdfPrinterId[] = "Save as PDF";
|
| @@ -823,8 +827,24 @@ void PrintPreviewHandler::HandleGetPreview(const base::ListValue* args) {
|
| }
|
|
|
| VLOG(1) << "Print preview request start";
|
| - RenderViewHost* rvh = initiator->GetRenderViewHost();
|
| - rvh->Send(new PrintMsg_PrintPreview(rvh->GetRoutingID(), *settings));
|
| +
|
| + bool print_friendly = false;
|
| + if (!settings->GetBoolean(printing::kSettingPrintFriendlyEnabled,
|
| + &print_friendly)) {
|
| + NOTREACHED();
|
| + }
|
| +
|
| + if (print_friendly) {
|
| + if (!hidden_print_preview_)
|
| + MaybeStartDistillation(initiator);
|
| +
|
| + hidden_print_preview_.reset(
|
| + new HiddenPrintPreview(initiator, print_preview_ui()));
|
| + hidden_print_preview_->SetSettings(settings.Pass());
|
| + } else {
|
| + RenderViewHost* rvh = initiator->GetRenderViewHost();
|
| + rvh->Send(new PrintMsg_PrintPreview(rvh->GetRoutingID(), *settings));
|
| + }
|
| }
|
|
|
| void PrintPreviewHandler::HandlePrint(const base::ListValue* args) {
|
| @@ -1237,6 +1257,15 @@ void PrintPreviewHandler::SendInitialSettings(
|
| initial_settings.SetBoolean(kHidePrintWithSystemDialogLink, is_ash);
|
| #endif
|
|
|
| + WebContents* initiator = GetInitiator();
|
| + bool can_simplify = false;
|
| + if (initiator) {
|
| + can_simplify = cmdline->HasSwitch(switches::kEnableDomDistiller) &&
|
| + dom_distiller::url_utils::IsUrlDistillable(
|
| + initiator->GetLastCommittedURL());
|
| + }
|
| + initial_settings.SetBoolean(kPrintFriendlyEnabled, can_simplify);
|
| +
|
| if (print_preview_ui()->source_is_modifiable())
|
| GetNumberFormatAndMeasurementSystem(&initial_settings);
|
| web_ui()->CallJavascriptFunction("setInitialSettings", initial_settings);
|
|
|