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

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

Issue 1125343004: Add a "Simplify Page" option to the print preview dialog (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix for the failing tests Created 5 years, 4 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 d9c40280300d4b92ec9d6a684095c25b5f160db2..266384fc01793776bb2105e50e19fd2d0a31082d 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,9 @@
#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/content/browser/distillable_page_utils.h"
+#include "components/dom_distiller/core/dom_distiller_switches.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"
@@ -839,8 +843,28 @@ 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 distill_page = false;
+ if (!settings->GetBoolean(printing::kSettingDistillPageEnabled,
+ &distill_page)) {
+ NOTREACHED();
+ }
+
+ bool selection_only = false;
+ if (!settings->GetBoolean(printing::kSettingShouldPrintSelectionOnly,
+ &selection_only)) {
+ NOTREACHED();
+ }
+
+ if (distill_page && !selection_only) {
+ print_preview_distiller_.reset(new PrintPreviewDistiller(
+ initiator, base::Bind(&PrintPreviewUI::OnPrintPreviewFailed,
+ print_preview_ui()->GetWeakPtr()),
+ settings.Pass()));
+ } else {
+ RenderViewHost* rvh = initiator->GetRenderViewHost();
+ rvh->Send(new PrintMsg_PrintPreview(rvh->GetRoutingID(), *settings));
+ }
}
void PrintPreviewHandler::HandlePrint(const base::ListValue* args) {
@@ -1256,6 +1280,22 @@ void PrintPreviewHandler::SendInitialSettings(
if (print_preview_ui()->source_is_modifiable())
GetNumberFormatAndMeasurementSystem(&initial_settings);
web_ui()->CallJavascriptFunction("setInitialSettings", initial_settings);
+
+ WebContents* initiator = GetInitiator();
+ if (initiator && cmdline->HasSwitch(switches::kEnableDomDistiller) &&
+ dom_distiller::url_utils::IsUrlDistillable(
+ initiator->GetLastCommittedURL())) {
+ dom_distiller::IsDistillablePage(
+ initiator, false,
+ base::Bind(&PrintPreviewHandler::HandleIsPageDistillableResult,
+ weak_factory_.GetWeakPtr()));
+ }
+}
+
+void PrintPreviewHandler::HandleIsPageDistillableResult(bool distillable) {
+ VLOG(1) << "Distillable page detection finished";
+ if (distillable)
+ web_ui()->CallJavascriptFunction("detectDistillablePage");
}
void PrintPreviewHandler::ClosePreviewDialog() {

Powered by Google App Engine
This is Rietveld 408576698