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 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
96 const char kJSPrintPreviewGrayscale[] = "grayscale"; | 96 const char kJSPrintPreviewGrayscale[] = "grayscale"; |
97 const char kJSPrintPreviewPageCount[] = "pageCount"; | 97 const char kJSPrintPreviewPageCount[] = "pageCount"; |
98 // Load preview page (Page -> Plugin) | 98 // Load preview page (Page -> Plugin) |
99 const char kJSLoadPreviewPageType[] = "loadPreviewPage"; | 99 const char kJSLoadPreviewPageType[] = "loadPreviewPage"; |
100 const char kJSPreviewPageUrl[] = "url"; | 100 const char kJSPreviewPageUrl[] = "url"; |
101 const char kJSPreviewPageIndex[] = "index"; | 101 const char kJSPreviewPageIndex[] = "index"; |
102 // Set scroll position (Plugin -> Page) | 102 // Set scroll position (Plugin -> Page) |
103 const char kJSSetScrollPositionType[] = "setScrollPosition"; | 103 const char kJSSetScrollPositionType[] = "setScrollPosition"; |
104 const char kJSPositionX[] = "x"; | 104 const char kJSPositionX[] = "x"; |
105 const char kJSPositionY[] = "y"; | 105 const char kJSPositionY[] = "y"; |
106 // Set translated strings (Plugin -> Page) | |
107 const char kJSSetTranslatedStringsType[] = "setTranslatedStrings"; | |
108 const char kJSGetPasswordString[] = "getPasswordString"; | |
109 const char kJSLoadingString[] = "loadingString"; | |
110 const char kJSLoadFailedString[] = "loadFailedString"; | |
111 // Request accessibility JSON data (Page -> Plugin) | 106 // Request accessibility JSON data (Page -> Plugin) |
112 const char kJSGetAccessibilityJSONType[] = "getAccessibilityJSON"; | 107 const char kJSGetAccessibilityJSONType[] = "getAccessibilityJSON"; |
113 const char kJSAccessibilityPageNumber[] = "page"; | 108 const char kJSAccessibilityPageNumber[] = "page"; |
114 // Reply with accessibility JSON data (Plugin -> Page) | 109 // Reply with accessibility JSON data (Plugin -> Page) |
115 const char kJSGetAccessibilityJSONReplyType[] = "getAccessibilityJSONReply"; | 110 const char kJSGetAccessibilityJSONReplyType[] = "getAccessibilityJSONReply"; |
116 const char kJSAccessibilityJSON[] = "json"; | 111 const char kJSAccessibilityJSON[] = "json"; |
117 // Cancel the stream URL request (Plugin -> Page) | 112 // Cancel the stream URL request (Plugin -> Page) |
118 const char kJSCancelStreamUrlType[] = "cancelStreamUrl"; | 113 const char kJSCancelStreamUrlType[] = "cancelStreamUrl"; |
119 // Navigate to the given URL (Plugin -> Page) | 114 // Navigate to the given URL (Plugin -> Page) |
120 const char kJSNavigateType[] = "navigate"; | 115 const char kJSNavigateType[] = "navigate"; |
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
321 if (strcmp(argn[i], "full-frame") == 0) { | 316 if (strcmp(argn[i], "full-frame") == 0) { |
322 full_ = true; | 317 full_ = true; |
323 break; | 318 break; |
324 } | 319 } |
325 } | 320 } |
326 | 321 |
327 // Only allow the plugin to handle find requests if it is full frame. | 322 // Only allow the plugin to handle find requests if it is full frame. |
328 if (full_) | 323 if (full_) |
329 SetPluginToHandleFindRequests(); | 324 SetPluginToHandleFindRequests(); |
330 | 325 |
331 // Send translated strings to the extension where they will be displayed. | |
332 // TODO(raymes): It would be better to get these in the extension directly | |
333 // through an API but no such API currently exists. | |
334 pp::VarDictionary translated_strings; | |
335 translated_strings.Set(kType, kJSSetTranslatedStringsType); | |
336 translated_strings.Set(kJSGetPasswordString, | |
337 GetLocalizedString(PP_RESOURCESTRING_PDFGETPASSWORD)); | |
338 translated_strings.Set(kJSLoadingString, | |
339 GetLocalizedString(PP_RESOURCESTRING_PDFLOADING)); | |
340 translated_strings.Set(kJSLoadFailedString, | |
341 GetLocalizedString(PP_RESOURCESTRING_PDFLOAD_FAILED)); | |
342 PostMessage(translated_strings); | |
343 | |
344 text_input_.reset(new pp::TextInput_Dev(this)); | 326 text_input_.reset(new pp::TextInput_Dev(this)); |
345 | 327 |
346 const char* stream_url = nullptr; | 328 const char* stream_url = nullptr; |
347 const char* original_url = nullptr; | 329 const char* original_url = nullptr; |
348 const char* headers = nullptr; | 330 const char* headers = nullptr; |
349 for (uint32_t i = 0; i < argc; ++i) { | 331 for (uint32_t i = 0; i < argc; ++i) { |
350 bool success = true; | 332 bool success = true; |
351 if (strcmp(argn[i], "src") == 0) | 333 if (strcmp(argn[i], "src") == 0) |
352 original_url = argv[i]; | 334 original_url = argv[i]; |
353 else if (strcmp(argn[i], "stream-url") == 0) | 335 else if (strcmp(argn[i], "stream-url") == 0) |
(...skipping 998 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1352 trusted_interface->GrantUniversalAccess(loader.pp_resource()); | 1334 trusted_interface->GrantUniversalAccess(loader.pp_resource()); |
1353 return loader; | 1335 return loader; |
1354 } | 1336 } |
1355 | 1337 |
1356 void OutOfProcessInstance::SetZoom(double scale) { | 1338 void OutOfProcessInstance::SetZoom(double scale) { |
1357 double old_zoom = zoom_; | 1339 double old_zoom = zoom_; |
1358 zoom_ = scale; | 1340 zoom_ = scale; |
1359 OnGeometryChanged(old_zoom, device_scale_); | 1341 OnGeometryChanged(old_zoom, device_scale_); |
1360 } | 1342 } |
1361 | 1343 |
1362 std::string OutOfProcessInstance::GetLocalizedString(PP_ResourceString id) { | |
1363 pp::Var rv(pp::PDF::GetLocalizedString(this, id)); | |
1364 if (!rv.is_string()) | |
1365 return std::string(); | |
1366 | |
1367 return rv.AsString(); | |
1368 } | |
1369 | |
1370 void OutOfProcessInstance::AppendBlankPrintPreviewPages() { | 1344 void OutOfProcessInstance::AppendBlankPrintPreviewPages() { |
1371 if (print_preview_page_count_ == 0) | 1345 if (print_preview_page_count_ == 0) |
1372 return; | 1346 return; |
1373 engine_->AppendBlankPages(print_preview_page_count_); | 1347 engine_->AppendBlankPages(print_preview_page_count_); |
1374 if (!preview_pages_info_.empty()) | 1348 if (!preview_pages_info_.empty()) |
1375 LoadAvailablePreviewPage(); | 1349 LoadAvailablePreviewPage(); |
1376 } | 1350 } |
1377 | 1351 |
1378 bool OutOfProcessInstance::IsPrintPreview() { | 1352 bool OutOfProcessInstance::IsPrintPreview() { |
1379 return IsPrintPreviewUrl(url_); | 1353 return IsPrintPreviewUrl(url_); |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1432 const pp::FloatPoint& scroll_offset) { | 1406 const pp::FloatPoint& scroll_offset) { |
1433 float max_x = document_size_.width() * zoom_ - plugin_dip_size_.width(); | 1407 float max_x = document_size_.width() * zoom_ - plugin_dip_size_.width(); |
1434 float x = std::max(std::min(scroll_offset.x(), max_x), 0.0f); | 1408 float x = std::max(std::min(scroll_offset.x(), max_x), 0.0f); |
1435 float min_y = -top_toolbar_height_; | 1409 float min_y = -top_toolbar_height_; |
1436 float max_y = document_size_.height() * zoom_ - plugin_dip_size_.height(); | 1410 float max_y = document_size_.height() * zoom_ - plugin_dip_size_.height(); |
1437 float y = std::max(std::min(scroll_offset.y(), max_y), min_y); | 1411 float y = std::max(std::min(scroll_offset.y(), max_y), min_y); |
1438 return pp::FloatPoint(x, y); | 1412 return pp::FloatPoint(x, y); |
1439 } | 1413 } |
1440 | 1414 |
1441 } // namespace chrome_pdf | 1415 } // namespace chrome_pdf |
OLD | NEW |