| Index: chrome/browser/dom_ui/print_preview_handler.cc
|
| diff --git a/chrome/browser/dom_ui/print_preview_handler.cc b/chrome/browser/dom_ui/print_preview_handler.cc
|
| index 80e53fbac52c0b4d347b656ac135ee5ea69d93ec..f24a9ddfe83065e4597c71293abf8946034ef0a9 100644
|
| --- a/chrome/browser/dom_ui/print_preview_handler.cc
|
| +++ b/chrome/browser/dom_ui/print_preview_handler.cc
|
| @@ -5,6 +5,8 @@
|
| #include "chrome/browser/dom_ui/print_preview_handler.h"
|
|
|
| #include "base/values.h"
|
| +#include "chrome/browser/dom_ui/web_ui_util.h"
|
| +#include "chrome/browser/renderer_host/render_view_host.h"
|
| #include "printing/backend/print_backend.h"
|
|
|
| PrintPreviewHandler::PrintPreviewHandler()
|
| @@ -17,6 +19,8 @@ PrintPreviewHandler::~PrintPreviewHandler() {
|
| void PrintPreviewHandler::RegisterMessages() {
|
| web_ui_->RegisterMessageCallback("getPrinters",
|
| NewCallback(this, &PrintPreviewHandler::HandleGetPrinters));
|
| + web_ui_->RegisterMessageCallback("print",
|
| + NewCallback(this, &PrintPreviewHandler::HandlePrint));
|
| }
|
|
|
| void PrintPreviewHandler::HandleGetPrinters(const ListValue*) {
|
| @@ -31,3 +35,13 @@ void PrintPreviewHandler::HandleGetPrinters(const ListValue*) {
|
|
|
| web_ui_->CallJavascriptFunction(L"setPrinters", printers);
|
| }
|
| +
|
| +void PrintPreviewHandler::HandlePrint(const ListValue* args) {
|
| + std::string json_str(
|
| + web_ui_util::GetJsonResponseFromFirstArgumentInList(args));
|
| + if (json_str.empty()) {
|
| + NOTREACHED() << "Empty print job settings";
|
| + return;
|
| + }
|
| + web_ui_->GetRenderViewHost()->PrintForPrintPreview(json_str);
|
| +}
|
|
|