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

Side by Side Diff: pdf/out_of_process_instance.cc

Issue 871403005: Switch the background color in PDF Viewer when using Material Design (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Move default background colors into {out_of_process_,}instance.cc Created 5 years, 10 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "pdf/out_of_process_instance.h" 5 #include "pdf/out_of_process_instance.h"
6 6
7 #include <algorithm> // for min/max() 7 #include <algorithm> // for min/max()
8 #define _USE_MATH_DEFINES // for M_PI 8 #define _USE_MATH_DEFINES // for M_PI
9 #include <cmath> // for log() and pow() 9 #include <cmath> // for log() and pow()
10 #include <math.h> 10 #include <math.h>
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 45
46 const char kChromePrint[] = "chrome://print/"; 46 const char kChromePrint[] = "chrome://print/";
47 const char kChromeExtension[] = 47 const char kChromeExtension[] =
48 "chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai"; 48 "chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai";
49 49
50 // Dictionary Value key names for the document accessibility info 50 // Dictionary Value key names for the document accessibility info
51 const char kAccessibleNumberOfPages[] = "numberOfPages"; 51 const char kAccessibleNumberOfPages[] = "numberOfPages";
52 const char kAccessibleLoaded[] = "loaded"; 52 const char kAccessibleLoaded[] = "loaded";
53 const char kAccessibleCopyable[] = "copyable"; 53 const char kAccessibleCopyable[] = "copyable";
54 54
55 // PDF background colors
56 const uint32 kBackgroundColor = 0xFFCCCCCC;
57 const uint32 kBackgroundColorMaterial = 0xFFEEEEEE;
58
55 // Constants used in handling postMessage() messages. 59 // Constants used in handling postMessage() messages.
56 const char kType[] = "type"; 60 const char kType[] = "type";
57 // Viewport message arguments. (Page -> Plugin). 61 // Viewport message arguments. (Page -> Plugin).
58 const char kJSViewportType[] = "viewport"; 62 const char kJSViewportType[] = "viewport";
59 const char kJSXOffset[] = "xOffset"; 63 const char kJSXOffset[] = "xOffset";
60 const char kJSYOffset[] = "yOffset"; 64 const char kJSYOffset[] = "yOffset";
61 const char kJSZoom[] = "zoom"; 65 const char kJSZoom[] = "zoom";
62 // Stop scrolling message (Page -> Plugin) 66 // Stop scrolling message (Page -> Plugin)
63 const char kJSStopScrollingType[] = "stopScrolling"; 67 const char kJSStopScrollingType[] = "stopScrolling";
64 // Document dimension arguments (Plugin -> Page). 68 // Document dimension arguments (Plugin -> Page).
(...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after
324 GetLocalizedString(PP_RESOURCESTRING_PDFLOADING)); 328 GetLocalizedString(PP_RESOURCESTRING_PDFLOADING));
325 translated_strings.Set(kJSLoadFailedString, 329 translated_strings.Set(kJSLoadFailedString,
326 GetLocalizedString(PP_RESOURCESTRING_PDFLOAD_FAILED)); 330 GetLocalizedString(PP_RESOURCESTRING_PDFLOAD_FAILED));
327 PostMessage(translated_strings); 331 PostMessage(translated_strings);
328 332
329 text_input_.reset(new pp::TextInput_Dev(this)); 333 text_input_.reset(new pp::TextInput_Dev(this));
330 334
331 const char* stream_url = NULL; 335 const char* stream_url = NULL;
332 const char* original_url = NULL; 336 const char* original_url = NULL;
333 const char* headers = NULL; 337 const char* headers = NULL;
338 const char* isMaterial = NULL;
334 for (uint32_t i = 0; i < argc; ++i) { 339 for (uint32_t i = 0; i < argc; ++i) {
335 if (strcmp(argn[i], "src") == 0) 340 if (strcmp(argn[i], "src") == 0)
336 original_url = argv[i]; 341 original_url = argv[i];
337 else if (strcmp(argn[i], "stream-url") == 0) 342 else if (strcmp(argn[i], "stream-url") == 0)
338 stream_url = argv[i]; 343 stream_url = argv[i];
339 else if (strcmp(argn[i], "headers") == 0) 344 else if (strcmp(argn[i], "headers") == 0)
340 headers = argv[i]; 345 headers = argv[i];
346 else if (strcmp(argn[i], "is-material") == 0)
347 isMaterial = argv[i];
341 } 348 }
342 349
350 if (strcmp(isMaterial, "true") == 0)
351 engine_->SetBackgroundColor(kBackgroundColorMaterial);
352 else
353 engine_->SetBackgroundColor(kBackgroundColor);
354
355
343 // TODO(raymes): This is a hack to ensure that if no headers are passed in 356 // TODO(raymes): This is a hack to ensure that if no headers are passed in
344 // then we get the right MIME type. When the in process plugin is removed we 357 // then we get the right MIME type. When the in process plugin is removed we
345 // can fix the document loader properly and remove this hack. 358 // can fix the document loader properly and remove this hack.
346 if (!headers || strcmp(headers, "") == 0) 359 if (!headers || strcmp(headers, "") == 0)
347 headers = "content-type: application/pdf"; 360 headers = "content-type: application/pdf";
348 361
349 if (!original_url) 362 if (!original_url)
350 return false; 363 return false;
351 364
352 if (!stream_url) 365 if (!stream_url)
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after
655 const std::vector<pp::Rect>& paint_rects, 668 const std::vector<pp::Rect>& paint_rects,
656 std::vector<PaintManager::ReadyRect>* ready, 669 std::vector<PaintManager::ReadyRect>* ready,
657 std::vector<pp::Rect>* pending) { 670 std::vector<pp::Rect>* pending) {
658 if (image_data_.is_null()) { 671 if (image_data_.is_null()) {
659 DCHECK(plugin_size_.IsEmpty()); 672 DCHECK(plugin_size_.IsEmpty());
660 return; 673 return;
661 } 674 }
662 if (first_paint_) { 675 if (first_paint_) {
663 first_paint_ = false; 676 first_paint_ = false;
664 pp::Rect rect = pp::Rect(pp::Point(), image_data_.size()); 677 pp::Rect rect = pp::Rect(pp::Point(), image_data_.size());
665 FillRect(rect, kBackgroundColor); 678 FillRect(rect, engine_->GetBackgroundColor());
666 ready->push_back(PaintManager::ReadyRect(rect, image_data_, true)); 679 ready->push_back(PaintManager::ReadyRect(rect, image_data_, true));
667 } 680 }
668 681
669 if (!received_viewport_message_) 682 if (!received_viewport_message_)
670 return; 683 return;
671 684
672 engine_->PrePaint(); 685 engine_->PrePaint();
673 686
674 for (size_t i = 0; i < paint_rects.size(); i++) { 687 for (size_t i = 0; i < paint_rects.size(); i++) {
675 // Intersect with plugin area since there could be pending invalidates from 688 // Intersect with plugin area since there could be pending invalidates from
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
748 background_parts_.clear(); 761 background_parts_.clear();
749 int left_width = available_area_.x(); 762 int left_width = available_area_.x();
750 int right_start = available_area_.right(); 763 int right_start = available_area_.right();
751 int right_width = abs(plugin_size_.width() - available_area_.right()); 764 int right_width = abs(plugin_size_.width() - available_area_.right());
752 int bottom = std::min(available_area_.bottom(), plugin_size_.height()); 765 int bottom = std::min(available_area_.bottom(), plugin_size_.height());
753 766
754 // Add the left, right, and bottom rectangles. Note: we assume only 767 // Add the left, right, and bottom rectangles. Note: we assume only
755 // horizontal centering. 768 // horizontal centering.
756 BackgroundPart part = { 769 BackgroundPart part = {
757 pp::Rect(0, 0, left_width, bottom), 770 pp::Rect(0, 0, left_width, bottom),
758 kBackgroundColor 771 engine_->GetBackgroundColor()
759 }; 772 };
760 if (!part.location.IsEmpty()) 773 if (!part.location.IsEmpty())
761 background_parts_.push_back(part); 774 background_parts_.push_back(part);
762 part.location = pp::Rect(right_start, 0, right_width, bottom); 775 part.location = pp::Rect(right_start, 0, right_width, bottom);
763 if (!part.location.IsEmpty()) 776 if (!part.location.IsEmpty())
764 background_parts_.push_back(part); 777 background_parts_.push_back(part);
765 part.location = pp::Rect( 778 part.location = pp::Rect(
766 0, bottom, plugin_size_.width(), plugin_size_.height() - bottom); 779 0, bottom, plugin_size_.width(), plugin_size_.height() - bottom);
767 if (!part.location.IsEmpty()) 780 if (!part.location.IsEmpty())
768 background_parts_.push_back(part); 781 background_parts_.push_back(part);
(...skipping 606 matching lines...) Expand 10 before | Expand all | Expand 10 after
1375 pp::FloatPoint OutOfProcessInstance::BoundScrollOffsetToDocument( 1388 pp::FloatPoint OutOfProcessInstance::BoundScrollOffsetToDocument(
1376 const pp::FloatPoint& scroll_offset) { 1389 const pp::FloatPoint& scroll_offset) {
1377 float max_x = document_size_.width() * zoom_ - plugin_dip_size_.width(); 1390 float max_x = document_size_.width() * zoom_ - plugin_dip_size_.width();
1378 float x = std::max(std::min(scroll_offset.x(), max_x), 0.0f); 1391 float x = std::max(std::min(scroll_offset.x(), max_x), 0.0f);
1379 float max_y = document_size_.height() * zoom_ - plugin_dip_size_.height(); 1392 float max_y = document_size_.height() * zoom_ - plugin_dip_size_.height();
1380 float y = std::max(std::min(scroll_offset.y(), max_y), 0.0f); 1393 float y = std::max(std::min(scroll_offset.y(), max_y), 0.0f);
1381 return pp::FloatPoint(x, y); 1394 return pp::FloatPoint(x, y);
1382 } 1395 }
1383 1396
1384 } // namespace chrome_pdf 1397 } // namespace chrome_pdf
OLDNEW
« pdf/instance.cc ('K') | « pdf/instance.cc ('k') | pdf/pdf_engine.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698