Index: chrome/browser/ui/webui/print_preview_handler.cc |
diff --git a/chrome/browser/ui/webui/print_preview_handler.cc b/chrome/browser/ui/webui/print_preview_handler.cc |
index 5d4fbab2da27357df937e097ea260d04d8116fe8..e1f51381c8980aa3c1ae38e425160bfc84d5eedd 100644 |
--- a/chrome/browser/ui/webui/print_preview_handler.cc |
+++ b/chrome/browser/ui/webui/print_preview_handler.cc |
@@ -15,6 +15,7 @@ |
#include "base/memory/ref_counted.h" |
#include "base/metrics/histogram.h" |
#include "base/path_service.h" |
+#include "base/string_number_conversions.h" |
#include "base/threading/thread.h" |
#include "base/threading/thread_restrictions.h" |
#include "base/utf_string_conversions.h" |
@@ -476,6 +477,7 @@ void PrintPreviewHandler::HandleGetPrinters(const ListValue*) { |
} |
void PrintPreviewHandler::HandleGetPreview(const ListValue* args) { |
+ DCHECK(args->GetSize() == 3); |
scoped_ptr<DictionaryValue> settings(GetSettingsDictionary(args)); |
if (!settings.get()) |
return; |
@@ -518,6 +520,32 @@ void PrintPreviewHandler::HandleGetPreview(const ListValue* args) { |
settings->SetString(printing::kSettingHeaderFooterURL, url); |
} |
+ bool generate_draft_data; |
vandebo (ex-Chrome)
2011/08/29 18:21:56
nit: set default (false) here?
kmadhusu
2011/08/30 17:27:00
Default value is not required. If GetBoolean fails
|
+ if (!settings->GetBoolean(printing::kSettingGenerateDraftData, |
+ &generate_draft_data)) { |
+ generate_draft_data = false; |
+ NOTREACHED(); |
+ } |
+ |
+ if (!generate_draft_data) { |
+ int draft_page_count; |
vandebo (ex-Chrome)
2011/08/29 18:21:56
nit: default here?
kmadhusu
2011/08/30 17:27:00
Done.
|
+ bool preview_modifiable; |
vandebo (ex-Chrome)
2011/08/29 18:21:56
need default
kmadhusu
2011/08/30 17:27:00
Done.
|
+ std::string draft_page_count_str; |
+ if (!args->GetString(1, &draft_page_count_str) || |
+ !base::StringToInt(draft_page_count_str, &draft_page_count)) { |
+ NOTREACHED(); |
+ draft_page_count = -1; |
+ } |
+ |
+ if (!args->GetBoolean(2, &preview_modifiable)) |
+ NOTREACHED(); |
+ |
+ if (draft_page_count != -1 && preview_modifiable && |
+ !print_preview_ui->IsDraftPagesAvailable(draft_page_count)) { |
+ settings->SetBoolean(printing::kSettingGenerateDraftData, true); |
+ } |
+ } |
+ |
VLOG(1) << "Print preview request start"; |
RenderViewHost* rvh = initiator_tab->render_view_host(); |
rvh->Send(new PrintMsg_PrintPreview(rvh->routing_id(), *settings)); |