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/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 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
125 const char kJSNavigateType[] = "navigate"; | 125 const char kJSNavigateType[] = "navigate"; |
126 const char kJSNavigateUrl[] = "url"; | 126 const char kJSNavigateUrl[] = "url"; |
127 const char kJSNavigateNewTab[] = "newTab"; | 127 const char kJSNavigateNewTab[] = "newTab"; |
128 // Open the email editor with the given parameters (Plugin -> Page) | 128 // Open the email editor with the given parameters (Plugin -> Page) |
129 const char kJSEmailType[] = "email"; | 129 const char kJSEmailType[] = "email"; |
130 const char kJSEmailTo[] = "to"; | 130 const char kJSEmailTo[] = "to"; |
131 const char kJSEmailCc[] = "cc"; | 131 const char kJSEmailCc[] = "cc"; |
132 const char kJSEmailBcc[] = "bcc"; | 132 const char kJSEmailBcc[] = "bcc"; |
133 const char kJSEmailSubject[] = "subject"; | 133 const char kJSEmailSubject[] = "subject"; |
134 const char kJSEmailBody[] = "body"; | 134 const char kJSEmailBody[] = "body"; |
135 // Handle open PDF parameters. | |
136 const char kJSHandleOpenPDFParams[] = "openPDFParams"; | |
135 | 137 |
136 const int kFindResultCooldownMs = 100; | 138 const int kFindResultCooldownMs = 100; |
137 | 139 |
138 const double kMinZoom = 0.01; | 140 const double kMinZoom = 0.01; |
139 | 141 |
140 namespace { | 142 namespace { |
141 | 143 |
142 static const char kPPPPdfInterface[] = PPP_PDF_INTERFACE_1; | 144 static const char kPPPPdfInterface[] = PPP_PDF_INTERFACE_1; |
143 | 145 |
144 PP_Var GetLinkAtPosition(PP_Instance instance, PP_Point point) { | 146 PP_Var GetLinkAtPosition(PP_Instance instance, PP_Point point) { |
(...skipping 922 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1067 // Clear focus state for OSK. | 1069 // Clear focus state for OSK. |
1068 FormTextFieldFocusChange(false); | 1070 FormTextFieldFocusChange(false); |
1069 | 1071 |
1070 DCHECK(document_load_state_ == LOAD_STATE_LOADING); | 1072 DCHECK(document_load_state_ == LOAD_STATE_LOADING); |
1071 document_load_state_ = LOAD_STATE_COMPLETE; | 1073 document_load_state_ = LOAD_STATE_COMPLETE; |
1072 UserMetricsRecordAction("PDF.LoadSuccess"); | 1074 UserMetricsRecordAction("PDF.LoadSuccess"); |
1073 | 1075 |
1074 // Note: If we are in print preview mode the scroll location is retained | 1076 // Note: If we are in print preview mode the scroll location is retained |
1075 // across document loads so we don't want to scroll again and override it. | 1077 // across document loads so we don't want to scroll again and override it. |
1076 if (!IsPrintPreview()) { | 1078 if (!IsPrintPreview()) { |
1077 int initial_page = GetInitialPage(url_); | 1079 pp::VarDictionary message; |
1078 if (initial_page >= 0) | 1080 message.Set(pp::Var(kType), pp::Var(kJSHandleOpenPDFParams)); |
1079 ScrollToPage(initial_page); | 1081 PostMessage(message); |
raymes
2014/08/15 01:07:18
I don't think we need to add this new message type
Nikhil
2014/08/16 10:24:01
Done.
| |
1080 } else { | 1082 } else { |
1081 AppendBlankPrintPreviewPages(); | 1083 AppendBlankPrintPreviewPages(); |
1082 OnGeometryChanged(0, 0); | 1084 OnGeometryChanged(0, 0); |
1083 } | 1085 } |
1084 | 1086 |
1085 pp::VarDictionary message; | 1087 pp::VarDictionary message; |
1086 message.Set(pp::Var(kType), pp::Var(kJSLoadProgressType)); | 1088 message.Set(pp::Var(kType), pp::Var(kJSLoadProgressType)); |
1087 message.Set(pp::Var(kJSProgressPercentage), pp::Var(100)) ; | 1089 message.Set(pp::Var(kJSProgressPercentage), pp::Var(100)) ; |
1088 PostMessage(message); | 1090 PostMessage(message); |
1089 | 1091 |
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1297 | 1299 |
1298 const PPB_URLLoaderTrusted* trusted_interface = | 1300 const PPB_URLLoaderTrusted* trusted_interface = |
1299 reinterpret_cast<const PPB_URLLoaderTrusted*>( | 1301 reinterpret_cast<const PPB_URLLoaderTrusted*>( |
1300 pp::Module::Get()->GetBrowserInterface( | 1302 pp::Module::Get()->GetBrowserInterface( |
1301 PPB_URLLOADERTRUSTED_INTERFACE)); | 1303 PPB_URLLOADERTRUSTED_INTERFACE)); |
1302 if (trusted_interface) | 1304 if (trusted_interface) |
1303 trusted_interface->GrantUniversalAccess(loader.pp_resource()); | 1305 trusted_interface->GrantUniversalAccess(loader.pp_resource()); |
1304 return loader; | 1306 return loader; |
1305 } | 1307 } |
1306 | 1308 |
1307 int OutOfProcessInstance::GetInitialPage(const std::string& url) { | 1309 int OutOfProcessInstance::GetInitialPage(const std::string& url) { |
raymes
2014/08/15 01:07:18
I think we can get rid of this entire function fro
Nikhil
2014/08/16 10:24:01
Done.
| |
1308 size_t found_idx = url.find('#'); | 1310 size_t found_idx = url.find('#'); |
1309 if (found_idx == std::string::npos) | 1311 if (found_idx == std::string::npos) |
1310 return -1; | 1312 return -1; |
1311 | 1313 |
1312 const std::string& ref = url.substr(found_idx + 1); | 1314 const std::string& ref = url.substr(found_idx + 1); |
1313 std::vector<std::string> fragments; | 1315 std::vector<std::string> fragments; |
1314 Tokenize(ref, kDelimiters, &fragments); | 1316 Tokenize(ref, kDelimiters, &fragments); |
1315 | 1317 |
1316 // Page number to return, zero-based. | 1318 // Page number to return, zero-based. |
1317 int page = -1; | 1319 int page = -1; |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1414 pp::Point OutOfProcessInstance::BoundScrollOffsetToDocument( | 1416 pp::Point OutOfProcessInstance::BoundScrollOffsetToDocument( |
1415 const pp::Point& scroll_offset) { | 1417 const pp::Point& scroll_offset) { |
1416 int max_x = document_size_.width() * zoom_ - plugin_dip_size_.width(); | 1418 int max_x = document_size_.width() * zoom_ - plugin_dip_size_.width(); |
1417 int x = std::max(std::min(scroll_offset.x(), max_x), 0); | 1419 int x = std::max(std::min(scroll_offset.x(), max_x), 0); |
1418 int max_y = document_size_.height() * zoom_ - plugin_dip_size_.height(); | 1420 int max_y = document_size_.height() * zoom_ - plugin_dip_size_.height(); |
1419 int y = std::max(std::min(scroll_offset.y(), max_y), 0); | 1421 int y = std::max(std::min(scroll_offset.y(), max_y), 0); |
1420 return pp::Point(x, y); | 1422 return pp::Point(x, y); |
1421 } | 1423 } |
1422 | 1424 |
1423 } // namespace chrome_pdf | 1425 } // namespace chrome_pdf |
OLD | NEW |