| 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 "content/renderer/pepper/pepper_plugin_instance_impl.h" | 5 #include "content/renderer/pepper/pepper_plugin_instance_impl.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/bit_cast.h" | 10 #include "base/bit_cast.h" |
| (...skipping 1780 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1791 print_settings.dpi = print_params.printerDPI; | 1791 print_settings.dpi = print_params.printerDPI; |
| 1792 print_settings.orientation = PP_PRINTORIENTATION_NORMAL; | 1792 print_settings.orientation = PP_PRINTORIENTATION_NORMAL; |
| 1793 print_settings.grayscale = PP_FALSE; | 1793 print_settings.grayscale = PP_FALSE; |
| 1794 print_settings.print_scaling_option = | 1794 print_settings.print_scaling_option = |
| 1795 static_cast<PP_PrintScalingOption_Dev>(print_params.printScalingOption); | 1795 static_cast<PP_PrintScalingOption_Dev>(print_params.printScalingOption); |
| 1796 print_settings.format = format; | 1796 print_settings.format = format; |
| 1797 num_pages = plugin_print_interface_->Begin(pp_instance(), &print_settings); | 1797 num_pages = plugin_print_interface_->Begin(pp_instance(), &print_settings); |
| 1798 if (!num_pages) | 1798 if (!num_pages) |
| 1799 return 0; | 1799 return 0; |
| 1800 current_print_settings_ = print_settings; | 1800 current_print_settings_ = print_settings; |
| 1801 canvas_.reset(); | 1801 canvas_ = nullptr; |
| 1802 ranges_.clear(); | 1802 ranges_.clear(); |
| 1803 return num_pages; | 1803 return num_pages; |
| 1804 } | 1804 } |
| 1805 | 1805 |
| 1806 void PepperPluginInstanceImpl::PrintPage(int page_number, | 1806 void PepperPluginInstanceImpl::PrintPage(int page_number, |
| 1807 blink::WebCanvas* canvas) { | 1807 blink::WebCanvas* canvas) { |
| 1808 #if BUILDFLAG(ENABLE_PRINTING) | 1808 #if BUILDFLAG(ENABLE_PRINTING) |
| 1809 DCHECK(plugin_print_interface_); | 1809 DCHECK(plugin_print_interface_); |
| 1810 PP_PrintPageNumberRange_Dev page_range; | 1810 PP_PrintPageNumberRange_Dev page_range; |
| 1811 page_range.first_page_number = page_range.last_page_number = page_number; | 1811 page_range.first_page_number = page_range.last_page_number = page_number; |
| 1812 // The canvas only has a metafile on it for print preview. | 1812 // The canvas only has a metafile on it for print preview. |
| 1813 bool save_for_later = | 1813 bool save_for_later = |
| 1814 (printing::MetafileSkiaWrapper::GetMetafileFromCanvas(*canvas) != NULL); | 1814 (printing::MetafileSkiaWrapper::GetMetafileFromCanvas(*canvas) != NULL); |
| 1815 #if defined(OS_MACOSX) | 1815 #if defined(OS_MACOSX) |
| 1816 save_for_later = save_for_later && skia::IsPreviewMetafile(*canvas); | 1816 save_for_later = save_for_later && skia::IsPreviewMetafile(*canvas); |
| 1817 #endif // defined(OS_MACOSX) | 1817 #endif // defined(OS_MACOSX) |
| 1818 if (save_for_later) { | 1818 if (save_for_later) { |
| 1819 ranges_.push_back(page_range); | 1819 ranges_.push_back(page_range); |
| 1820 canvas_ = sk_ref_sp(canvas); | 1820 canvas_ = canvas; |
| 1821 } else { | 1821 } else { |
| 1822 PrintPageHelper(&page_range, 1, canvas); | 1822 PrintPageHelper(&page_range, 1, canvas); |
| 1823 } | 1823 } |
| 1824 #endif | 1824 #endif |
| 1825 } | 1825 } |
| 1826 | 1826 |
| 1827 void PepperPluginInstanceImpl::PrintPageHelper( | 1827 void PepperPluginInstanceImpl::PrintPageHelper( |
| 1828 PP_PrintPageNumberRange_Dev* page_ranges, | 1828 PP_PrintPageNumberRange_Dev* page_ranges, |
| 1829 int num_ranges, | 1829 int num_ranges, |
| 1830 blink::WebCanvas* canvas) { | 1830 blink::WebCanvas* canvas) { |
| (...skipping 11 matching lines...) Expand all Loading... |
| 1842 PrintPDFOutput(print_output, canvas); | 1842 PrintPDFOutput(print_output, canvas); |
| 1843 | 1843 |
| 1844 // Now we need to release the print output resource. | 1844 // Now we need to release the print output resource. |
| 1845 PluginModule::GetCore()->ReleaseResource(print_output); | 1845 PluginModule::GetCore()->ReleaseResource(print_output); |
| 1846 } | 1846 } |
| 1847 | 1847 |
| 1848 void PepperPluginInstanceImpl::PrintEnd() { | 1848 void PepperPluginInstanceImpl::PrintEnd() { |
| 1849 // Keep a reference on the stack. See NOTE above. | 1849 // Keep a reference on the stack. See NOTE above. |
| 1850 scoped_refptr<PepperPluginInstanceImpl> ref(this); | 1850 scoped_refptr<PepperPluginInstanceImpl> ref(this); |
| 1851 if (!ranges_.empty()) | 1851 if (!ranges_.empty()) |
| 1852 PrintPageHelper(&(ranges_.front()), ranges_.size(), canvas_.get()); | 1852 PrintPageHelper(&(ranges_.front()), ranges_.size(), canvas_); |
| 1853 canvas_.reset(); | 1853 canvas_ = nullptr; |
| 1854 ranges_.clear(); | 1854 ranges_.clear(); |
| 1855 | 1855 |
| 1856 DCHECK(plugin_print_interface_); | 1856 DCHECK(plugin_print_interface_); |
| 1857 if (plugin_print_interface_) | 1857 if (plugin_print_interface_) |
| 1858 plugin_print_interface_->End(pp_instance()); | 1858 plugin_print_interface_->End(pp_instance()); |
| 1859 | 1859 |
| 1860 memset(¤t_print_settings_, 0, sizeof(current_print_settings_)); | 1860 memset(¤t_print_settings_, 0, sizeof(current_print_settings_)); |
| 1861 #if defined(OS_MACOSX) | 1861 #if defined(OS_MACOSX) |
| 1862 last_printed_page_ = NULL; | 1862 last_printed_page_ = NULL; |
| 1863 #endif // defined(OS_MACOSX) | 1863 #endif // defined(OS_MACOSX) |
| (...skipping 1572 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3436 const cc::TextureMailbox& mailbox) const { | 3436 const cc::TextureMailbox& mailbox) const { |
| 3437 auto it = | 3437 auto it = |
| 3438 std::find_if(texture_ref_counts_.begin(), texture_ref_counts_.end(), | 3438 std::find_if(texture_ref_counts_.begin(), texture_ref_counts_.end(), |
| 3439 [&mailbox](const TextureMailboxRefCount& ref_count) { | 3439 [&mailbox](const TextureMailboxRefCount& ref_count) { |
| 3440 return ref_count.first.mailbox() == mailbox.mailbox(); | 3440 return ref_count.first.mailbox() == mailbox.mailbox(); |
| 3441 }); | 3441 }); |
| 3442 return it != texture_ref_counts_.end(); | 3442 return it != texture_ref_counts_.end(); |
| 3443 } | 3443 } |
| 3444 | 3444 |
| 3445 } // namespace content | 3445 } // namespace content |
| OLD | NEW |