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

Unified Diff: chrome/renderer/mock_render_thread.cc

Issue 7544018: Print preview page selection should not require a rerendering of draft pages. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Added a new browser test Created 9 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/renderer/mock_render_thread.cc
diff --git a/chrome/renderer/mock_render_thread.cc b/chrome/renderer/mock_render_thread.cc
index aac71561a37d6ce2e0e2e940dcf405481eae0cfe..1a66d41f9b17d5bfbad478ec65237de2c731b10a 100644
--- a/chrome/renderer/mock_render_thread.cc
+++ b/chrome/renderer/mock_render_thread.cc
@@ -16,6 +16,7 @@
#include "ipc/ipc_message_utils.h"
#include "ipc/ipc_sync_message.h"
#include "printing/print_job_constants.h"
+#include "printing/page_range.h"
#include "testing/gtest/include/gtest/gtest.h"
MockRenderThread::MockRenderThread()
@@ -213,7 +214,8 @@ void MockRenderThread::OnDidPrintPage(
void MockRenderThread::OnDidGetPreviewPageCount(int document_cookie,
int number_pages,
- bool is_modifiable) {
+ bool is_modifiable,
+ bool clear_preview_data) {
print_preview_pages_remaining_ = number_pages;
}
@@ -242,8 +244,29 @@ void MockRenderThread::OnUpdatePrintSettings(
}
// Just return the default settings.
- if (printer_.get())
- printer_->UpdateSettings(document_cookie, params);
+ if (printer_.get()) {
+ ListValue* page_range_array = new ListValue();
+ printing::PageRanges new_ranges;
+ if (job_settings.GetList(printing::kSettingPageRange, &page_range_array)) {
+ for (size_t index = 0; index < page_range_array->GetSize(); ++index) {
+ DictionaryValue* dict;
+ if (!page_range_array->GetDictionary(index, &dict))
+ continue;
+ printing::PageRange range;
+ if (!dict->GetInteger(printing::kSettingPageRangeFrom, &range.from) ||
+ !dict->GetInteger(printing::kSettingPageRangeTo, &range.to)) {
+ continue;
+ }
+ // Page numbers are 1-based in the dictionary.
+ // Page numbers are 0-based for the printing context.
+ range.from--;
+ range.to--;
+ new_ranges.push_back(range);
+ }
+ }
+ std::vector<int> pages(printing::PageRange::GetPages(new_ranges));
+ printer_->UpdateSettings(document_cookie, params, pages);
+ }
}
void MockRenderThread::set_print_dialog_user_response(bool response) {

Powered by Google App Engine
This is Rietveld 408576698