OLD | NEW |
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/instance.h" | 5 #include "pdf/instance.h" |
6 | 6 |
7 #include <algorithm> // for min() | 7 #include <algorithm> // for min() |
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 665 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
676 } | 676 } |
677 | 677 |
678 pp::Var Instance::GetLinkAtPosition(const pp::Point& point) { | 678 pp::Var Instance::GetLinkAtPosition(const pp::Point& point) { |
679 pp::Point offset_point(point); | 679 pp::Point offset_point(point); |
680 ScalePoint(device_scale_, &offset_point); | 680 ScalePoint(device_scale_, &offset_point); |
681 offset_point.set_x(offset_point.x() - available_area_.x()); | 681 offset_point.set_x(offset_point.x() - available_area_.x()); |
682 return engine_->GetLinkAtPosition(offset_point); | 682 return engine_->GetLinkAtPosition(offset_point); |
683 } | 683 } |
684 | 684 |
685 pp::Var Instance::GetSelectedText(bool html) { | 685 pp::Var Instance::GetSelectedText(bool html) { |
686 if (html || !engine_->HasPermission(PDFEngine::PERMISSION_COPY)) | 686 if (html) |
687 return pp::Var(); | 687 return pp::Var(); |
688 return engine_->GetSelectedText(); | 688 return engine_->GetSelectedText(); |
689 } | 689 } |
690 | 690 |
691 void Instance::InvalidateWidget(pp::Widget_Dev widget, | 691 void Instance::InvalidateWidget(pp::Widget_Dev widget, |
692 const pp::Rect& dirty_rect) { | 692 const pp::Rect& dirty_rect) { |
693 if (v_scrollbar_.get() && *v_scrollbar_ == widget) { | 693 if (v_scrollbar_.get() && *v_scrollbar_ == widget) { |
694 if (!image_data_.is_null()) | 694 if (!image_data_.is_null()) |
695 v_scrollbar_->Paint(dirty_rect.pp_rect(), &image_data_); | 695 v_scrollbar_->Paint(dirty_rect.pp_rect(), &image_data_); |
696 } else if (h_scrollbar_.get() && *h_scrollbar_ == widget) { | 696 } else if (h_scrollbar_.get() && *h_scrollbar_ == widget) { |
(...skipping 1153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1850 } | 1850 } |
1851 if (method_str == kJSGetHorizontalScrollbarThickness) { | 1851 if (method_str == kJSGetHorizontalScrollbarThickness) { |
1852 return pp::Var( | 1852 return pp::Var( |
1853 h_scrollbar_.get() ? GetScrollbarReservedThickness() : 0); | 1853 h_scrollbar_.get() ? GetScrollbarReservedThickness() : 0); |
1854 } | 1854 } |
1855 if (method_str == kJSGetVerticalScrollbarThickness) { | 1855 if (method_str == kJSGetVerticalScrollbarThickness) { |
1856 return pp::Var( | 1856 return pp::Var( |
1857 v_scrollbar_.get() ? GetScrollbarReservedThickness() : 0); | 1857 v_scrollbar_.get() ? GetScrollbarReservedThickness() : 0); |
1858 } | 1858 } |
1859 if (method_str == kJSGetSelectedText) { | 1859 if (method_str == kJSGetSelectedText) { |
1860 return GetSelectedText(false); | 1860 std::string selected_text = engine_->GetSelectedText(); |
| 1861 // Always return unix newlines to JS. |
| 1862 base::ReplaceChars(selected_text, "\r", std::string(), &selected_text); |
| 1863 return selected_text; |
1861 } | 1864 } |
1862 if (method_str == kJSDocumentLoadComplete) { | 1865 if (method_str == kJSDocumentLoadComplete) { |
1863 return pp::Var((document_load_state_ != LOAD_STATE_LOADING)); | 1866 return pp::Var((document_load_state_ != LOAD_STATE_LOADING)); |
1864 } | 1867 } |
1865 if (method_str == kJSPageYOffset) { | 1868 if (method_str == kJSPageYOffset) { |
1866 return pp::Var(static_cast<int32_t>( | 1869 return pp::Var(static_cast<int32_t>( |
1867 v_scrollbar_.get() ? v_scrollbar_->GetValue() : 0)); | 1870 v_scrollbar_.get() ? v_scrollbar_->GetValue() : 0)); |
1868 } | 1871 } |
1869 if (method_str == kJSSetPageYOffset) { | 1872 if (method_str == kJSSetPageYOffset) { |
1870 if (args.size() == 1 && args[0].is_number() && v_scrollbar_.get()) | 1873 if (args.size() == 1 && args[0].is_number() && v_scrollbar_.get()) |
(...skipping 938 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2809 return instance_->HasScriptableMethod(name, exception); | 2812 return instance_->HasScriptableMethod(name, exception); |
2810 } | 2813 } |
2811 | 2814 |
2812 pp::Var PDFScriptableObject::Call(const pp::Var& method, | 2815 pp::Var PDFScriptableObject::Call(const pp::Var& method, |
2813 const std::vector<pp::Var>& args, | 2816 const std::vector<pp::Var>& args, |
2814 pp::Var* exception) { | 2817 pp::Var* exception) { |
2815 return instance_->CallScriptableMethod(method, args, exception); | 2818 return instance_->CallScriptableMethod(method, args, exception); |
2816 } | 2819 } |
2817 | 2820 |
2818 } // namespace chrome_pdf | 2821 } // namespace chrome_pdf |
OLD | NEW |