| 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 "chrome/renderer/pepper/ppb_pdf_impl.h" | 5 #include "chrome/renderer/pepper/ppb_pdf_impl.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" |
| 7 #include "base/metrics/histogram.h" | 8 #include "base/metrics/histogram.h" |
| 8 #include "base/utf_string_conversions.h" | 9 #include "base/utf_string_conversions.h" |
| 9 #include "build/build_config.h" | 10 #include "build/build_config.h" |
| 11 #include "chrome/common/chrome_switches.h" |
| 10 #include "chrome/common/render_messages.h" | 12 #include "chrome/common/render_messages.h" |
| 11 #include "chrome/renderer/print_web_view_helper.h" | 13 #include "chrome/renderer/print_web_view_helper.h" |
| 12 #include "content/public/common/child_process_sandbox_support_linux.h" | 14 #include "content/public/common/child_process_sandbox_support_linux.h" |
| 13 #include "content/public/common/content_client.h" | 15 #include "content/public/common/content_client.h" |
| 14 #include "content/public/renderer/render_thread.h" | 16 #include "content/public/renderer/render_thread.h" |
| 15 #include "content/public/renderer/render_view.h" | 17 #include "content/public/renderer/render_view.h" |
| 16 #include "grit/webkit_resources.h" | 18 #include "grit/webkit_resources.h" |
| 17 #include "grit/webkit_strings.h" | 19 #include "grit/webkit_strings.h" |
| 18 #include "ppapi/c/pp_resource.h" | 20 #include "ppapi/c/pp_resource.h" |
| 19 #include "ppapi/c/private/ppb_pdf.h" | 21 #include "ppapi/c/private/ppb_pdf.h" |
| (...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 340 } | 342 } |
| 341 | 343 |
| 342 void SaveAs(PP_Instance instance_id) { | 344 void SaveAs(PP_Instance instance_id) { |
| 343 PluginInstance* instance = | 345 PluginInstance* instance = |
| 344 content::GetHostGlobals()->GetInstance(instance_id); | 346 content::GetHostGlobals()->GetInstance(instance_id); |
| 345 if (!instance) | 347 if (!instance) |
| 346 return; | 348 return; |
| 347 instance->delegate()->SaveURLAs(instance->plugin_url()); | 349 instance->delegate()->SaveURLAs(instance->plugin_url()); |
| 348 } | 350 } |
| 349 | 351 |
| 352 PP_Bool IsFeatureEnabled(PP_PDFFeature feature) { |
| 353 PP_Bool result = PP_FALSE; |
| 354 switch (feature) { |
| 355 case PP_PDFFEATURE_HIDPI: |
| 356 if (CommandLine::ForCurrentProcess()->HasSwitch( |
| 357 switches::kEnableHighDPIPDFPlugin)) |
| 358 result = PP_TRUE; |
| 359 break; |
| 360 } |
| 361 return result; |
| 362 } |
| 363 |
| 350 const PPB_PDF ppb_pdf = { | 364 const PPB_PDF ppb_pdf = { |
| 351 &GetLocalizedString, | 365 &GetLocalizedString, |
| 352 &GetResourceImage, | 366 &GetResourceImage, |
| 353 &GetFontFileWithFallback, | 367 &GetFontFileWithFallback, |
| 354 &GetFontTableForPrivateFontFile, | 368 &GetFontTableForPrivateFontFile, |
| 355 &SearchString, | 369 &SearchString, |
| 356 &DidStartLoading, | 370 &DidStartLoading, |
| 357 &DidStopLoading, | 371 &DidStopLoading, |
| 358 &SetContentRestriction, | 372 &SetContentRestriction, |
| 359 &HistogramPDFPageCount, | 373 &HistogramPDFPageCount, |
| 360 &UserMetricsRecordAction, | 374 &UserMetricsRecordAction, |
| 361 &HasUnsupportedFeature, | 375 &HasUnsupportedFeature, |
| 362 &SaveAs, | 376 &SaveAs, |
| 363 &PPB_PDF_Impl::InvokePrintingForInstance | 377 &PPB_PDF_Impl::InvokePrintingForInstance, |
| 378 &IsFeatureEnabled |
| 364 }; | 379 }; |
| 365 | 380 |
| 366 } // namespace | 381 } // namespace |
| 367 | 382 |
| 368 // static | 383 // static |
| 369 const PPB_PDF* PPB_PDF_Impl::GetInterface() { | 384 const PPB_PDF* PPB_PDF_Impl::GetInterface() { |
| 370 return &ppb_pdf; | 385 return &ppb_pdf; |
| 371 } | 386 } |
| 372 | 387 |
| 373 // static | 388 // static |
| 374 void PPB_PDF_Impl::InvokePrintingForInstance(PP_Instance instance_id) { | 389 void PPB_PDF_Impl::InvokePrintingForInstance(PP_Instance instance_id) { |
| 375 #if defined(ENABLE_PRINTING) | 390 #if defined(ENABLE_PRINTING) |
| 376 PluginInstance* instance = HostGlobals::Get()->GetInstance(instance_id); | 391 PluginInstance* instance = HostGlobals::Get()->GetInstance(instance_id); |
| 377 if (!instance) | 392 if (!instance) |
| 378 return; | 393 return; |
| 379 | 394 |
| 380 WebKit::WebElement element = instance->container()->element(); | 395 WebKit::WebElement element = instance->container()->element(); |
| 381 WebKit::WebView* view = element.document().frame()->view(); | 396 WebKit::WebView* view = element.document().frame()->view(); |
| 382 content::RenderView* render_view = content::RenderView::FromWebView(view); | 397 content::RenderView* render_view = content::RenderView::FromWebView(view); |
| 383 | 398 |
| 384 PrintWebViewHelper* print_view_helper = PrintWebViewHelper::Get(render_view); | 399 PrintWebViewHelper* print_view_helper = PrintWebViewHelper::Get(render_view); |
| 385 if (print_view_helper) | 400 if (print_view_helper) |
| 386 print_view_helper->PrintNode(element); | 401 print_view_helper->PrintNode(element); |
| 387 #endif | 402 #endif |
| 388 } | 403 } |
| OLD | NEW |