| 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 "webkit/plugins/ppapi/ppapi_plugin_instance.h" | 5 #include "webkit/plugins/ppapi/ppapi_plugin_instance.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/debug/trace_event.h" | 8 #include "base/debug/trace_event.h" |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/memory/linked_ptr.h" | 10 #include "base/memory/linked_ptr.h" |
| (...skipping 1151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1162 return 0; | 1162 return 0; |
| 1163 current_print_settings_ = print_settings; | 1163 current_print_settings_ = print_settings; |
| 1164 #if defined(USE_SKIA) | 1164 #if defined(USE_SKIA) |
| 1165 canvas_ = NULL; | 1165 canvas_ = NULL; |
| 1166 ranges_.clear(); | 1166 ranges_.clear(); |
| 1167 #endif // USE_SKIA | 1167 #endif // USE_SKIA |
| 1168 return num_pages; | 1168 return num_pages; |
| 1169 } | 1169 } |
| 1170 | 1170 |
| 1171 bool PluginInstance::PrintPage(int page_number, WebKit::WebCanvas* canvas) { | 1171 bool PluginInstance::PrintPage(int page_number, WebKit::WebCanvas* canvas) { |
| 1172 #if defined(ENABLE_PRINTING) |
| 1172 DCHECK(plugin_print_interface_); | 1173 DCHECK(plugin_print_interface_); |
| 1173 PP_PrintPageNumberRange_Dev page_range; | 1174 PP_PrintPageNumberRange_Dev page_range; |
| 1174 page_range.first_page_number = page_range.last_page_number = page_number; | 1175 page_range.first_page_number = page_range.last_page_number = page_number; |
| 1175 #if defined(USE_SKIA) | 1176 #if defined(USE_SKIA) |
| 1176 // The canvas only has a metafile on it for print preview. | 1177 // The canvas only has a metafile on it for print preview. |
| 1177 bool save_for_later = | 1178 bool save_for_later = |
| 1178 (printing::MetafileSkiaWrapper::GetMetafileFromCanvas(*canvas) != NULL); | 1179 (printing::MetafileSkiaWrapper::GetMetafileFromCanvas(*canvas) != NULL); |
| 1179 #if defined(OS_MACOSX) || defined(OS_WIN) | 1180 #if defined(OS_MACOSX) || defined(OS_WIN) |
| 1180 save_for_later = save_for_later && skia::IsPreviewMetafile(*canvas); | 1181 save_for_later = save_for_later && skia::IsPreviewMetafile(*canvas); |
| 1181 #endif | 1182 #endif |
| 1182 if (save_for_later) { | 1183 if (save_for_later) { |
| 1183 ranges_.push_back(page_range); | 1184 ranges_.push_back(page_range); |
| 1184 canvas_ = canvas; | 1185 canvas_ = canvas; |
| 1185 return true; | 1186 return true; |
| 1186 } else | 1187 } else |
| 1187 #endif // USE_SKIA | 1188 #endif // USE_SKIA |
| 1188 { | 1189 { |
| 1189 return PrintPageHelper(&page_range, 1, canvas); | 1190 return PrintPageHelper(&page_range, 1, canvas); |
| 1190 } | 1191 } |
| 1192 #else // defined(ENABLED_PRINTING) |
| 1193 return false; |
| 1194 #endif |
| 1191 } | 1195 } |
| 1192 | 1196 |
| 1193 bool PluginInstance::PrintPageHelper(PP_PrintPageNumberRange_Dev* page_ranges, | 1197 bool PluginInstance::PrintPageHelper(PP_PrintPageNumberRange_Dev* page_ranges, |
| 1194 int num_ranges, | 1198 int num_ranges, |
| 1195 WebKit::WebCanvas* canvas) { | 1199 WebKit::WebCanvas* canvas) { |
| 1196 // Keep a reference on the stack. See NOTE above. | 1200 // Keep a reference on the stack. See NOTE above. |
| 1197 scoped_refptr<PluginInstance> ref(this); | 1201 scoped_refptr<PluginInstance> ref(this); |
| 1198 DCHECK(plugin_print_interface_); | 1202 DCHECK(plugin_print_interface_); |
| 1199 if (!plugin_print_interface_) | 1203 if (!plugin_print_interface_) |
| 1200 return false; | 1204 return false; |
| (...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1408 | 1412 |
| 1409 PluginDelegate::PlatformContext3D* PluginInstance::CreateContext3D() { | 1413 PluginDelegate::PlatformContext3D* PluginInstance::CreateContext3D() { |
| 1410 if (fullscreen_container_) | 1414 if (fullscreen_container_) |
| 1411 return fullscreen_container_->CreateContext3D(); | 1415 return fullscreen_container_->CreateContext3D(); |
| 1412 else | 1416 else |
| 1413 return delegate_->CreateContext3D(); | 1417 return delegate_->CreateContext3D(); |
| 1414 } | 1418 } |
| 1415 | 1419 |
| 1416 bool PluginInstance::PrintPDFOutput(PP_Resource print_output, | 1420 bool PluginInstance::PrintPDFOutput(PP_Resource print_output, |
| 1417 WebKit::WebCanvas* canvas) { | 1421 WebKit::WebCanvas* canvas) { |
| 1422 #if defined(ENABLE_PRINTING) |
| 1418 ::ppapi::thunk::EnterResourceNoLock<PPB_Buffer_API> enter(print_output, true); | 1423 ::ppapi::thunk::EnterResourceNoLock<PPB_Buffer_API> enter(print_output, true); |
| 1419 if (enter.failed()) | 1424 if (enter.failed()) |
| 1420 return false; | 1425 return false; |
| 1421 | 1426 |
| 1422 BufferAutoMapper mapper(enter.object()); | 1427 BufferAutoMapper mapper(enter.object()); |
| 1423 if (!mapper.data() || !mapper.size()) { | 1428 if (!mapper.data() || !mapper.size()) { |
| 1424 NOTREACHED(); | 1429 NOTREACHED(); |
| 1425 return false; | 1430 return false; |
| 1426 } | 1431 } |
| 1427 #if defined(OS_WIN) | 1432 #if defined(OS_WIN) |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1511 | 1516 |
| 1512 ret = render_proc(static_cast<unsigned char*>(mapper.data()), mapper.size(), | 1517 ret = render_proc(static_cast<unsigned char*>(mapper.data()), mapper.size(), |
| 1513 0, dc, current_print_settings_.dpi, | 1518 0, dc, current_print_settings_.dpi, |
| 1514 current_print_settings_.dpi, 0, 0, size_in_pixels.width(), | 1519 current_print_settings_.dpi, 0, 0, size_in_pixels.width(), |
| 1515 size_in_pixels.height(), true, false, true, true, true); | 1520 size_in_pixels.height(), true, false, true, true, true); |
| 1516 skia::EndPlatformPaint(canvas); | 1521 skia::EndPlatformPaint(canvas); |
| 1517 } | 1522 } |
| 1518 #endif // defined(OS_WIN) | 1523 #endif // defined(OS_WIN) |
| 1519 | 1524 |
| 1520 return ret; | 1525 return ret; |
| 1526 #else // defined(ENABLE_PRINTING) |
| 1527 return false; |
| 1528 #endif |
| 1521 } | 1529 } |
| 1522 | 1530 |
| 1523 PPB_Graphics2D_Impl* PluginInstance::GetBoundGraphics2D() const { | 1531 PPB_Graphics2D_Impl* PluginInstance::GetBoundGraphics2D() const { |
| 1524 if (bound_graphics_.get() == NULL) | 1532 if (bound_graphics_.get() == NULL) |
| 1525 return NULL; | 1533 return NULL; |
| 1526 | 1534 |
| 1527 if (bound_graphics_->AsPPB_Graphics2D_API()) | 1535 if (bound_graphics_->AsPPB_Graphics2D_API()) |
| 1528 return static_cast<PPB_Graphics2D_Impl*>(bound_graphics_.get()); | 1536 return static_cast<PPB_Graphics2D_Impl*>(bound_graphics_.get()); |
| 1529 return NULL; | 1537 return NULL; |
| 1530 } | 1538 } |
| (...skipping 606 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2137 screen_size_for_fullscreen_ = gfx::Size(); | 2145 screen_size_for_fullscreen_ = gfx::Size(); |
| 2138 WebElement element = container_->element(); | 2146 WebElement element = container_->element(); |
| 2139 element.setAttribute(WebString::fromUTF8(kWidth), width_before_fullscreen_); | 2147 element.setAttribute(WebString::fromUTF8(kWidth), width_before_fullscreen_); |
| 2140 element.setAttribute(WebString::fromUTF8(kHeight), height_before_fullscreen_); | 2148 element.setAttribute(WebString::fromUTF8(kHeight), height_before_fullscreen_); |
| 2141 element.setAttribute(WebString::fromUTF8(kBorder), border_before_fullscreen_); | 2149 element.setAttribute(WebString::fromUTF8(kBorder), border_before_fullscreen_); |
| 2142 element.setAttribute(WebString::fromUTF8(kStyle), style_before_fullscreen_); | 2150 element.setAttribute(WebString::fromUTF8(kStyle), style_before_fullscreen_); |
| 2143 } | 2151 } |
| 2144 | 2152 |
| 2145 } // namespace ppapi | 2153 } // namespace ppapi |
| 2146 } // namespace webkit | 2154 } // namespace webkit |
| OLD | NEW |