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

Side by Side Diff: webkit/plugins/ppapi/ppb_pdf_impl.cc

Issue 6871020: Added functionality to use "SaveAs..." from PDF plugin. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 8 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 | Annotate | Revision Log
« no previous file with comments | « webkit/plugins/ppapi/plugin_delegate.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "webkit/plugins/ppapi/ppb_pdf_impl.h" 5 #include "webkit/plugins/ppapi/ppb_pdf_impl.h"
6 6
7 #include "base/metrics/histogram.h" 7 #include "base/metrics/histogram.h"
8 #include "base/utf_string_conversions.h" 8 #include "base/utf_string_conversions.h"
9 #include "build/build_config.h" 9 #include "build/build_config.h"
10 #include "grit/webkit_resources.h" 10 #include "grit/webkit_resources.h"
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 #endif 48 #endif
49 49
50 namespace { 50 namespace {
51 51
52 struct ResourceImageInfo { 52 struct ResourceImageInfo {
53 PP_ResourceImage pp_id; 53 PP_ResourceImage pp_id;
54 int res_id; 54 int res_id;
55 }; 55 };
56 56
57 static const ResourceImageInfo kResourceImageMap[] = { 57 static const ResourceImageInfo kResourceImageMap[] = {
58 { PP_RESOURCEIMAGE_PDF_BUTTON_FTH, IDR_PDF_BUTTON_FTH }, 58 { PP_RESOURCEIMAGE_PDF_BUTTON_FTP, IDR_PDF_BUTTON_FTP },
59 { PP_RESOURCEIMAGE_PDF_BUTTON_FTH_HOVER, IDR_PDF_BUTTON_FTH_HOVER }, 59 { PP_RESOURCEIMAGE_PDF_BUTTON_FTP_HOVER, IDR_PDF_BUTTON_FTP_HOVER },
60 { PP_RESOURCEIMAGE_PDF_BUTTON_FTH_PRESSED, IDR_PDF_BUTTON_FTH_PRESSED }, 60 { PP_RESOURCEIMAGE_PDF_BUTTON_FTP_PRESSED, IDR_PDF_BUTTON_FTP_PRESSED },
61 { PP_RESOURCEIMAGE_PDF_BUTTON_FTW, IDR_PDF_BUTTON_FTW }, 61 { PP_RESOURCEIMAGE_PDF_BUTTON_FTW, IDR_PDF_BUTTON_FTW },
62 { PP_RESOURCEIMAGE_PDF_BUTTON_FTW_HOVER, IDR_PDF_BUTTON_FTW_HOVER }, 62 { PP_RESOURCEIMAGE_PDF_BUTTON_FTW_HOVER, IDR_PDF_BUTTON_FTW_HOVER },
63 { PP_RESOURCEIMAGE_PDF_BUTTON_FTW_PRESSED, IDR_PDF_BUTTON_FTW_PRESSED }, 63 { PP_RESOURCEIMAGE_PDF_BUTTON_FTW_PRESSED, IDR_PDF_BUTTON_FTW_PRESSED },
64 { PP_RESOURCEIMAGE_PDF_BUTTON_ZOOMIN, IDR_PDF_BUTTON_ZOOMIN }, 64 { PP_RESOURCEIMAGE_PDF_BUTTON_ZOOMIN, IDR_PDF_BUTTON_ZOOMIN },
65 { PP_RESOURCEIMAGE_PDF_BUTTON_ZOOMIN_HOVER, IDR_PDF_BUTTON_ZOOMIN_HOVER }, 65 { PP_RESOURCEIMAGE_PDF_BUTTON_ZOOMIN_HOVER, IDR_PDF_BUTTON_ZOOMIN_HOVER },
66 { PP_RESOURCEIMAGE_PDF_BUTTON_ZOOMIN_PRESSED, IDR_PDF_BUTTON_ZOOMIN_PRESSED }, 66 { PP_RESOURCEIMAGE_PDF_BUTTON_ZOOMIN_PRESSED, IDR_PDF_BUTTON_ZOOMIN_PRESSED },
67 { PP_RESOURCEIMAGE_PDF_BUTTON_ZOOMOUT, IDR_PDF_BUTTON_ZOOMOUT }, 67 { PP_RESOURCEIMAGE_PDF_BUTTON_ZOOMOUT, IDR_PDF_BUTTON_ZOOMOUT },
68 { PP_RESOURCEIMAGE_PDF_BUTTON_ZOOMOUT_HOVER, IDR_PDF_BUTTON_ZOOMOUT_HOVER }, 68 { PP_RESOURCEIMAGE_PDF_BUTTON_ZOOMOUT_HOVER, IDR_PDF_BUTTON_ZOOMOUT_HOVER },
69 { PP_RESOURCEIMAGE_PDF_BUTTON_ZOOMOUT_PRESSED, 69 { PP_RESOURCEIMAGE_PDF_BUTTON_ZOOMOUT_PRESSED,
70 IDR_PDF_BUTTON_ZOOMOUT_PRESSED }, 70 IDR_PDF_BUTTON_ZOOMOUT_PRESSED },
71 { PP_RESOURCEIMAGE_PDF_BUTTON_SAVE, IDR_PDF_BUTTON_SAVE },
72 { PP_RESOURCEIMAGE_PDF_BUTTON_SAVE_HOVER, IDR_PDF_BUTTON_SAVE_HOVER },
73 { PP_RESOURCEIMAGE_PDF_BUTTON_SAVE_PRESSED, IDR_PDF_BUTTON_SAVE_PRESSED },
74 { PP_RESOURCEIMAGE_PDF_BUTTON_PRINT, IDR_PDF_BUTTON_PRINT },
75 { PP_RESOURCEIMAGE_PDF_BUTTON_PRINT_HOVER, IDR_PDF_BUTTON_PRINT_HOVER },
76 { PP_RESOURCEIMAGE_PDF_BUTTON_PRINT_PRESSED, IDR_PDF_BUTTON_PRINT_PRESSED },
71 { PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_0, IDR_PDF_THUMBNAIL_0 }, 77 { PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_0, IDR_PDF_THUMBNAIL_0 },
72 { PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_1, IDR_PDF_THUMBNAIL_1 }, 78 { PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_1, IDR_PDF_THUMBNAIL_1 },
73 { PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_2, IDR_PDF_THUMBNAIL_2 }, 79 { PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_2, IDR_PDF_THUMBNAIL_2 },
74 { PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_3, IDR_PDF_THUMBNAIL_3 }, 80 { PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_3, IDR_PDF_THUMBNAIL_3 },
75 { PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_4, IDR_PDF_THUMBNAIL_4 }, 81 { PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_4, IDR_PDF_THUMBNAIL_4 },
76 { PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_5, IDR_PDF_THUMBNAIL_5 }, 82 { PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_5, IDR_PDF_THUMBNAIL_5 },
77 { PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_6, IDR_PDF_THUMBNAIL_6 }, 83 { PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_6, IDR_PDF_THUMBNAIL_6 },
78 { PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_7, IDR_PDF_THUMBNAIL_7 }, 84 { PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_7, IDR_PDF_THUMBNAIL_7 },
79 { PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_8, IDR_PDF_THUMBNAIL_8 }, 85 { PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_8, IDR_PDF_THUMBNAIL_8 },
80 { PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_9, IDR_PDF_THUMBNAIL_9 }, 86 { PP_RESOURCEIMAGE_PDF_BUTTON_THUMBNAIL_9, IDR_PDF_THUMBNAIL_9 },
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
287 if (!instance) 293 if (!instance)
288 return; 294 return;
289 295
290 // Only want to show an info bar if the pdf is the whole tab. 296 // Only want to show an info bar if the pdf is the whole tab.
291 if (!instance->IsFullPagePlugin()) 297 if (!instance->IsFullPagePlugin())
292 return; 298 return;
293 299
294 instance->delegate()->HasUnsupportedFeature(); 300 instance->delegate()->HasUnsupportedFeature();
295 } 301 }
296 302
303 void SaveAs(PP_Instance instance_id) {
304 PluginInstance* instance = ResourceTracker::Get()->GetInstance(instance_id);
305 if (!instance)
306 return;
307 instance->delegate()->SaveAs();
308 }
309
297 const PPB_PDF ppb_pdf = { 310 const PPB_PDF ppb_pdf = {
298 &GetLocalizedString, 311 &GetLocalizedString,
299 &GetResourceImage, 312 &GetResourceImage,
300 &GetFontFileWithFallback, 313 &GetFontFileWithFallback,
301 &GetFontTableForPrivateFontFile, 314 &GetFontTableForPrivateFontFile,
302 &SearchString, 315 &SearchString,
303 &DidStartLoading, 316 &DidStartLoading,
304 &DidStopLoading, 317 &DidStopLoading,
305 &SetContentRestriction, 318 &SetContentRestriction,
306 &HistogramPDFPageCount, 319 &HistogramPDFPageCount,
307 &UserMetricsRecordAction, 320 &UserMetricsRecordAction,
308 &HasUnsupportedFeature 321 &HasUnsupportedFeature,
322 &SaveAs
309 }; 323 };
310 324
311 } // namespace 325 } // namespace
312 326
313 // static 327 // static
314 const PPB_PDF* PPB_PDF_Impl::GetInterface() { 328 const PPB_PDF* PPB_PDF_Impl::GetInterface() {
315 return &ppb_pdf; 329 return &ppb_pdf;
316 } 330 }
317 331
318 #if defined(OS_LINUX) 332 #if defined(OS_LINUX)
319 bool PrivateFontFile::GetFontTable(uint32_t table, 333 bool PrivateFontFile::GetFontTable(uint32_t table,
320 void* output, 334 void* output,
321 uint32_t* output_length) { 335 uint32_t* output_length) {
322 size_t temp_size = static_cast<size_t>(*output_length); 336 size_t temp_size = static_cast<size_t>(*output_length);
323 bool rv = webkit_glue::GetFontTable( 337 bool rv = webkit_glue::GetFontTable(
324 fd_, table, static_cast<uint8_t*>(output), &temp_size); 338 fd_, table, static_cast<uint8_t*>(output), &temp_size);
325 *output_length = static_cast<uint32_t>(temp_size); 339 *output_length = static_cast<uint32_t>(temp_size);
326 return rv; 340 return rv;
327 } 341 }
328 #endif 342 #endif
329 343
330 } // namespace ppapi 344 } // namespace ppapi
331 } // namespace webkit 345 } // namespace webkit
332 346
OLDNEW
« no previous file with comments | « webkit/plugins/ppapi/plugin_delegate.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698