| 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) {
|
|
|