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

Side by Side Diff: chrome/renderer/webplugin_delegate_pepper.cc

Issue 1075011: Chrome side of adding search support to Pepper. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 9 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
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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 #define PEPPER_APIS_ENABLED 1 5 #define PEPPER_APIS_ENABLED 1
6 6
7 #include "build/build_config.h" 7 #include "build/build_config.h"
8 #if defined(OS_WIN) 8 #if defined(OS_WIN)
9 #include <vsstyle.h> 9 #include <vsstyle.h>
10 #endif 10 #endif
(...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after
314 WebPluginResourceClient* WebPluginDelegatePepper::CreateResourceClient( 314 WebPluginResourceClient* WebPluginDelegatePepper::CreateResourceClient(
315 unsigned long resource_id, const GURL& url, int notify_id) { 315 unsigned long resource_id, const GURL& url, int notify_id) {
316 return instance()->CreateStream(resource_id, url, std::string(), notify_id); 316 return instance()->CreateStream(resource_id, url, std::string(), notify_id);
317 } 317 }
318 318
319 WebPluginResourceClient* WebPluginDelegatePepper::CreateSeekableResourceClient( 319 WebPluginResourceClient* WebPluginDelegatePepper::CreateSeekableResourceClient(
320 unsigned long resource_id, int range_request_id) { 320 unsigned long resource_id, int range_request_id) {
321 return instance()->GetRangeRequest(range_request_id); 321 return instance()->GetRangeRequest(range_request_id);
322 } 322 }
323 323
324 void WebPluginDelegatePepper::StartFind(const std::string& search_text,
325 bool case_sensitive,
326 int identifier) {
327 find_identifier_ = identifier;
328 GetFindExtensions()->startFind(
329 instance()->npp(), search_text.c_str(), case_sensitive);
330 }
331
332 void WebPluginDelegatePepper::SelectFindResult(bool forward) {
333 GetFindExtensions()->selectFindResult(instance()->npp(), forward);
334 }
335
336 void WebPluginDelegatePepper::StopFind() {
337 find_identifier_ = -1;
338 GetFindExtensions()->stopFind(instance()->npp());
339 }
340
341 void WebPluginDelegatePepper::NumberOfFindResultsChanged(int total,
342 bool final_result) {
343 DCHECK(find_identifier_ != -1);
344
345 if (total == 0) {
346 render_view_->ReportNoFindInPageResults(find_identifier_);
347 } else {
348 render_view_->reportFindInPageMatchCount(
349 find_identifier_, total, final_result);
350 }
351 }
352
353 void WebPluginDelegatePepper::SelectedFindResultChanged(int index) {
354 render_view_->reportFindInPageSelection(
355 find_identifier_, index + 1, WebKit::WebRect());
356 }
357
324 NPError WebPluginDelegatePepper::Device2DQueryCapability(int32 capability, 358 NPError WebPluginDelegatePepper::Device2DQueryCapability(int32 capability,
325 int32* value) { 359 int32* value) {
326 return NPERR_GENERIC_ERROR; 360 return NPERR_GENERIC_ERROR;
327 } 361 }
328 362
329 NPError WebPluginDelegatePepper::Device2DQueryConfig( 363 NPError WebPluginDelegatePepper::Device2DQueryConfig(
330 const NPDeviceContext2DConfig* request, 364 const NPDeviceContext2DConfig* request,
331 NPDeviceContext2DConfig* obtain) { 365 NPDeviceContext2DConfig* obtain) {
332 return NPERR_GENERIC_ERROR; 366 return NPERR_GENERIC_ERROR;
333 } 367 }
(...skipping 641 matching lines...) Expand 10 before | Expand all | Expand 10 after
975 #endif // defined(OS_WIN) || defined(OS_LINUX) 1009 #endif // defined(OS_WIN) || defined(OS_LINUX)
976 } 1010 }
977 1011
978 void WebPluginDelegatePepper::PrintEnd() { 1012 void WebPluginDelegatePepper::PrintEnd() {
979 NPPPrintExtensions* print_extensions = GetPrintExtensions(); 1013 NPPPrintExtensions* print_extensions = GetPrintExtensions();
980 if (print_extensions) 1014 if (print_extensions)
981 print_extensions->printEnd(instance()->npp()); 1015 print_extensions->printEnd(instance()->npp());
982 current_printable_area_ = gfx::Rect(); 1016 current_printable_area_ = gfx::Rect();
983 } 1017 }
984 1018
1019 bool WebPluginDelegatePepper::SupportsFind() {
1020 return GetFindExtensions() != NULL;
1021 }
1022
985 1023
986 WebPluginDelegatePepper::WebPluginDelegatePepper( 1024 WebPluginDelegatePepper::WebPluginDelegatePepper(
987 const base::WeakPtr<RenderView>& render_view, 1025 const base::WeakPtr<RenderView>& render_view,
988 NPAPI::PluginInstance *instance) 1026 NPAPI::PluginInstance *instance)
989 : render_view_(render_view), 1027 : render_view_(render_view),
990 plugin_(NULL), 1028 plugin_(NULL),
991 instance_(instance), 1029 instance_(instance),
992 nested_delegate_(NULL), 1030 nested_delegate_(NULL),
993 #if defined(ENABLE_GPU) 1031 #if defined(ENABLE_GPU)
994 command_buffer_(NULL), 1032 command_buffer_(NULL),
995 #endif 1033 #endif
1034 find_identifier_(-1),
996 method_factory3d_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) { 1035 method_factory3d_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) {
997 // For now we keep a window struct, although it isn't used. 1036 // For now we keep a window struct, although it isn't used.
998 memset(&window_, 0, sizeof(window_)); 1037 memset(&window_, 0, sizeof(window_));
999 // All Pepper plugins are windowless and transparent. 1038 // All Pepper plugins are windowless and transparent.
1000 // TODO(sehr): disable resetting these NPPVs by plugins. 1039 // TODO(sehr): disable resetting these NPPVs by plugins.
1001 instance->set_windowless(true); 1040 instance->set_windowless(true);
1002 instance->set_transparent(true); 1041 instance->set_transparent(true);
1003 } 1042 }
1004 1043
1005 WebPluginDelegatePepper::~WebPluginDelegatePepper() { 1044 WebPluginDelegatePepper::~WebPluginDelegatePepper() {
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after
1256 1295
1257 NPPPrintExtensions* WebPluginDelegatePepper::GetPrintExtensions() { 1296 NPPPrintExtensions* WebPluginDelegatePepper::GetPrintExtensions() {
1258 NPPPrintExtensions* ret = NULL; 1297 NPPPrintExtensions* ret = NULL;
1259 NPPExtensions* extensions = NULL; 1298 NPPExtensions* extensions = NULL;
1260 instance()->NPP_GetValue(NPPVPepperExtensions, &extensions); 1299 instance()->NPP_GetValue(NPPVPepperExtensions, &extensions);
1261 if (extensions && extensions->getPrintExtensions) 1300 if (extensions && extensions->getPrintExtensions)
1262 ret = extensions->getPrintExtensions(instance()->npp()); 1301 ret = extensions->getPrintExtensions(instance()->npp());
1263 return ret; 1302 return ret;
1264 } 1303 }
1265 1304
1305 NPPFindExtensions* WebPluginDelegatePepper::GetFindExtensions() {
1306 NPPFindExtensions* ret = NULL;
1307 NPPExtensions* extensions = NULL;
1308 instance()->NPP_GetValue(NPPVPepperExtensions, &extensions);
1309 if (extensions && extensions->getFindExtensions)
1310 ret = extensions->getFindExtensions(instance()->npp());
1311 return ret;
1312 }
1313
1266 #if defined(OS_WIN) 1314 #if defined(OS_WIN)
1267 bool WebPluginDelegatePepper::DrawJPEGToPlatformDC( 1315 bool WebPluginDelegatePepper::DrawJPEGToPlatformDC(
1268 const SkBitmap& bitmap, 1316 const SkBitmap& bitmap,
1269 const gfx::Rect& printable_area, 1317 const gfx::Rect& printable_area,
1270 WebKit::WebCanvas* canvas) { 1318 WebKit::WebCanvas* canvas) {
1271 skia::VectorPlatformDevice& device = 1319 skia::VectorPlatformDevice& device =
1272 static_cast<skia::VectorPlatformDevice&>( 1320 static_cast<skia::VectorPlatformDevice&>(
1273 canvas->getTopPlatformDevice()); 1321 canvas->getTopPlatformDevice());
1274 HDC dc = device.getBitmapDC(); 1322 HDC dc = device.getBitmapDC();
1275 // TODO(sanjeevr): This is a temporary hack. If we output a JPEG 1323 // TODO(sanjeevr): This is a temporary hack. If we output a JPEG
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
1307 StretchDIBits(dc, printable_area.x(), printable_area.y(), 1355 StretchDIBits(dc, printable_area.x(), printable_area.y(),
1308 printable_area.width(), printable_area.height(), 1356 printable_area.width(), printable_area.height(),
1309 0, 0, bitmap.width(), bitmap.height(), 1357 0, 0, bitmap.width(), bitmap.height(),
1310 &compressed_image.front(), 1358 &compressed_image.front(),
1311 reinterpret_cast<const BITMAPINFO*>(&bmi), 1359 reinterpret_cast<const BITMAPINFO*>(&bmi),
1312 DIB_RGB_COLORS, SRCCOPY); 1360 DIB_RGB_COLORS, SRCCOPY);
1313 return true; 1361 return true;
1314 } 1362 }
1315 #endif // OS_WIN 1363 #endif // OS_WIN
1316 1364
OLDNEW
« no previous file with comments | « chrome/renderer/webplugin_delegate_pepper.h ('k') | third_party/npapi/bindings/npapi_extensions.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698