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

Side by Side Diff: webkit/glue/plugins/plugin_host.cc

Issue 4192012: Convert implicit scoped_refptr constructor calls to explicit ones, part 1 (Closed) Base URL: http://git.chromium.org/git/chromium.git
Patch Set: fix presubmit Created 10 years, 1 month 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) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/glue/plugins/plugin_host.h" 5 #include "webkit/glue/plugins/plugin_host.h"
6 6
7 #include "base/file_util.h" 7 #include "base/file_util.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/scoped_ptr.h" 9 #include "base/scoped_ptr.h"
10 #include "base/string_piece.h" 10 #include "base/string_piece.h"
(...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after
273 273
274 return !err; 274 return !err;
275 } 275 }
276 276
277 } // namespace NPAPI 277 } // namespace NPAPI
278 278
279 extern "C" { 279 extern "C" {
280 280
281 // Allocates memory from the host's memory space. 281 // Allocates memory from the host's memory space.
282 void* NPN_MemAlloc(uint32_t size) { 282 void* NPN_MemAlloc(uint32_t size) {
283 scoped_refptr<NPAPI::PluginHost> host = NPAPI::PluginHost::Singleton(); 283 scoped_refptr<NPAPI::PluginHost> host(NPAPI::PluginHost::Singleton());
284 if (host != NULL) { 284 if (host != NULL) {
285 // Note: We must use the same allocator/deallocator 285 // Note: We must use the same allocator/deallocator
286 // that is used by the javascript library, as some of the 286 // that is used by the javascript library, as some of the
287 // JS APIs will pass memory to the plugin which the plugin 287 // JS APIs will pass memory to the plugin which the plugin
288 // will attempt to free. 288 // will attempt to free.
289 return malloc(size); 289 return malloc(size);
290 } 290 }
291 return NULL; 291 return NULL;
292 } 292 }
293 293
294 // Deallocates memory from the host's memory space 294 // Deallocates memory from the host's memory space
295 void NPN_MemFree(void* ptr) { 295 void NPN_MemFree(void* ptr) {
296 scoped_refptr<NPAPI::PluginHost> host = NPAPI::PluginHost::Singleton(); 296 scoped_refptr<NPAPI::PluginHost> host(NPAPI::PluginHost::Singleton());
297 if (host != NULL) { 297 if (host != NULL) {
298 if (ptr != NULL && ptr != reinterpret_cast<void*>(-1)) 298 if (ptr != NULL && ptr != reinterpret_cast<void*>(-1))
299 free(ptr); 299 free(ptr);
300 } 300 }
301 } 301 }
302 302
303 // Requests that the host free a specified amount of memory. 303 // Requests that the host free a specified amount of memory.
304 uint32_t NPN_MemFlush(uint32_t size) { 304 uint32_t NPN_MemFlush(uint32_t size) {
305 // This is not relevant on Windows; MAC specific 305 // This is not relevant on Windows; MAC specific
306 return size; 306 return size;
307 } 307 }
308 308
309 // This is for dynamic discovery of new plugins. 309 // This is for dynamic discovery of new plugins.
310 // Should force a re-scan of the plugins directory to load new ones. 310 // Should force a re-scan of the plugins directory to load new ones.
311 void NPN_ReloadPlugins(NPBool reloadPages) { 311 void NPN_ReloadPlugins(NPBool reloadPages) {
312 // TODO: implement me 312 // TODO: implement me
313 DVLOG(1) << "NPN_ReloadPlugin is not implemented yet."; 313 DVLOG(1) << "NPN_ReloadPlugin is not implemented yet.";
314 } 314 }
315 315
316 // Requests a range of bytes for a seekable stream. 316 // Requests a range of bytes for a seekable stream.
317 NPError NPN_RequestRead(NPStream* stream, NPByteRange* range_list) { 317 NPError NPN_RequestRead(NPStream* stream, NPByteRange* range_list) {
318 if (!stream || !range_list) 318 if (!stream || !range_list)
319 return NPERR_GENERIC_ERROR; 319 return NPERR_GENERIC_ERROR;
320 320
321 scoped_refptr<NPAPI::PluginInstance> plugin = 321 scoped_refptr<NPAPI::PluginInstance> plugin(
322 reinterpret_cast<NPAPI::PluginInstance*>(stream->ndata); 322 reinterpret_cast<NPAPI::PluginInstance*>(stream->ndata));
323 if (!plugin.get()) 323 if (!plugin.get())
324 return NPERR_GENERIC_ERROR; 324 return NPERR_GENERIC_ERROR;
325 325
326 plugin->RequestRead(stream, range_list); 326 plugin->RequestRead(stream, range_list);
327 return NPERR_NO_ERROR; 327 return NPERR_NO_ERROR;
328 } 328 }
329 329
330 // Generic form of GetURL for common code between GetURL and GetURLNotify. 330 // Generic form of GetURL for common code between GetURL and GetURLNotify.
331 static NPError GetURLNotify(NPP id, 331 static NPError GetURLNotify(NPP id,
332 const char* url, 332 const char* url,
333 const char* target, 333 const char* target,
334 bool notify, 334 bool notify,
335 void* notify_data) { 335 void* notify_data) {
336 if (!url) 336 if (!url)
337 return NPERR_INVALID_URL; 337 return NPERR_INVALID_URL;
338 338
339 scoped_refptr<NPAPI::PluginInstance> plugin = FindInstance(id); 339 scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id));
340 if (!plugin.get()) { 340 if (!plugin.get()) {
341 NOTREACHED(); 341 NOTREACHED();
342 return NPERR_GENERIC_ERROR; 342 return NPERR_GENERIC_ERROR;
343 } 343 }
344 344
345 plugin->RequestURL(url, "GET", target, NULL, 0, notify, notify_data); 345 plugin->RequestURL(url, "GET", target, NULL, 0, notify, notify_data);
346 return NPERR_NO_ERROR; 346 return NPERR_NO_ERROR;
347 } 347 }
348 348
349 // Requests creation of a new stream with the contents of the 349 // Requests creation of a new stream with the contents of the
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
394 const char* url, 394 const char* url,
395 const char* target, 395 const char* target,
396 uint32_t len, 396 uint32_t len,
397 const char* buf, 397 const char* buf,
398 NPBool file, 398 NPBool file,
399 bool notify, 399 bool notify,
400 void* notify_data) { 400 void* notify_data) {
401 if (!url) 401 if (!url)
402 return NPERR_INVALID_URL; 402 return NPERR_INVALID_URL;
403 403
404 scoped_refptr<NPAPI::PluginInstance> plugin = FindInstance(id); 404 scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id));
405 if (!plugin.get()) { 405 if (!plugin.get()) {
406 NOTREACHED(); 406 NOTREACHED();
407 return NPERR_GENERIC_ERROR; 407 return NPERR_GENERIC_ERROR;
408 } 408 }
409 409
410 std::string post_file_contents; 410 std::string post_file_contents;
411 411
412 if (file) { 412 if (file) {
413 // Post data to be uploaded from a file. This can be handled in two 413 // Post data to be uploaded from a file. This can be handled in two
414 // ways. 414 // ways.
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
541 NPError NPN_DestroyStream(NPP id, NPStream* stream, NPReason reason) { 541 NPError NPN_DestroyStream(NPP id, NPStream* stream, NPReason reason) {
542 // Destroys a stream (could be created by plugin or browser). 542 // Destroys a stream (could be created by plugin or browser).
543 // 543 //
544 // Reasons: 544 // Reasons:
545 // NPRES_DONE - normal completion 545 // NPRES_DONE - normal completion
546 // NPRES_USER_BREAK - user terminated 546 // NPRES_USER_BREAK - user terminated
547 // NPRES_NETWORK_ERROR - network error (all errors fit here?) 547 // NPRES_NETWORK_ERROR - network error (all errors fit here?)
548 // 548 //
549 // 549 //
550 550
551 scoped_refptr<NPAPI::PluginInstance> plugin = FindInstance(id); 551 scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id));
552 if (plugin.get() == NULL) { 552 if (plugin.get() == NULL) {
553 NOTREACHED(); 553 NOTREACHED();
554 return NPERR_GENERIC_ERROR; 554 return NPERR_GENERIC_ERROR;
555 } 555 }
556 556
557 return plugin->NPP_DestroyStream(stream, reason); 557 return plugin->NPP_DestroyStream(stream, reason);
558 } 558 }
559 559
560 const char* NPN_UserAgent(NPP id) { 560 const char* NPN_UserAgent(NPP id) {
561 #if defined(OS_WIN) 561 #if defined(OS_WIN)
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
603 603
604 // Before a windowless plugin can refresh part of its drawing area, it must 604 // Before a windowless plugin can refresh part of its drawing area, it must
605 // first invalidate it. This function causes the NPP_HandleEvent method to 605 // first invalidate it. This function causes the NPP_HandleEvent method to
606 // pass an update event or a paint message to the plug-in. After calling 606 // pass an update event or a paint message to the plug-in. After calling
607 // this method, the plug-in recieves a paint message asynchronously. 607 // this method, the plug-in recieves a paint message asynchronously.
608 608
609 // The browser redraws invalid areas of the document and any windowless 609 // The browser redraws invalid areas of the document and any windowless
610 // plug-ins at regularly timed intervals. To force a paint message, the 610 // plug-ins at regularly timed intervals. To force a paint message, the
611 // plug-in can call NPN_ForceRedraw after calling this method. 611 // plug-in can call NPN_ForceRedraw after calling this method.
612 612
613 scoped_refptr<NPAPI::PluginInstance> plugin = FindInstance(id); 613 scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id));
614 DCHECK(plugin.get() != NULL); 614 DCHECK(plugin.get() != NULL);
615 if (plugin.get() && plugin->webplugin()) { 615 if (plugin.get() && plugin->webplugin()) {
616 if (invalidRect) { 616 if (invalidRect) {
617 #if defined(OS_WIN) 617 #if defined(OS_WIN)
618 if (!plugin->windowless()) { 618 if (!plugin->windowless()) {
619 RECT rect = {0}; 619 RECT rect = {0};
620 rect.left = invalidRect->left; 620 rect.left = invalidRect->left;
621 rect.right = invalidRect->right; 621 rect.right = invalidRect->right;
622 rect.top = invalidRect->top; 622 rect.top = invalidRect->top;
623 rect.bottom = invalidRect->bottom; 623 rect.bottom = invalidRect->bottom;
(...skipping 13 matching lines...) Expand all
637 } 637 }
638 638
639 void NPN_InvalidateRegion(NPP id, NPRegion invalidRegion) { 639 void NPN_InvalidateRegion(NPP id, NPRegion invalidRegion) {
640 // Invalidates a specified drawing region prior to repainting 640 // Invalidates a specified drawing region prior to repainting
641 // or refreshing a window-less plugin. 641 // or refreshing a window-less plugin.
642 // 642 //
643 // Similar to NPN_InvalidateRect. 643 // Similar to NPN_InvalidateRect.
644 644
645 // TODO: this is overkill--add platform-specific region handling (at the 645 // TODO: this is overkill--add platform-specific region handling (at the
646 // very least, fetch the region's bounding box and pass it to InvalidateRect). 646 // very least, fetch the region's bounding box and pass it to InvalidateRect).
647 scoped_refptr<NPAPI::PluginInstance> plugin = FindInstance(id); 647 scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id));
648 DCHECK(plugin.get() != NULL); 648 DCHECK(plugin.get() != NULL);
649 if (plugin.get() && plugin->webplugin()) 649 if (plugin.get() && plugin->webplugin())
650 plugin->webplugin()->Invalidate(); 650 plugin->webplugin()->Invalidate();
651 } 651 }
652 652
653 void NPN_ForceRedraw(NPP id) { 653 void NPN_ForceRedraw(NPP id) {
654 // Forces repaint for a windowless plug-in. 654 // Forces repaint for a windowless plug-in.
655 // 655 //
656 // We deliberately do not implement this; we don't want plugins forcing 656 // We deliberately do not implement this; we don't want plugins forcing
657 // synchronous paints. 657 // synchronous paints.
658 } 658 }
659 659
660 NPError NPN_GetValue(NPP id, NPNVariable variable, void* value) { 660 NPError NPN_GetValue(NPP id, NPNVariable variable, void* value) {
661 // Allows the plugin to query the browser for information 661 // Allows the plugin to query the browser for information
662 // 662 //
663 // Variables: 663 // Variables:
664 // NPNVxDisplay (unix only) 664 // NPNVxDisplay (unix only)
665 // NPNVxtAppContext (unix only) 665 // NPNVxtAppContext (unix only)
666 // NPNVnetscapeWindow (win only) - Gets the native window on which the 666 // NPNVnetscapeWindow (win only) - Gets the native window on which the
667 // plug-in drawing occurs, returns HWND 667 // plug-in drawing occurs, returns HWND
668 // NPNVjavascriptEnabledBool: tells whether Javascript is enabled 668 // NPNVjavascriptEnabledBool: tells whether Javascript is enabled
669 // NPNVasdEnabledBool: tells whether SmartUpdate is enabled 669 // NPNVasdEnabledBool: tells whether SmartUpdate is enabled
670 // NPNVOfflineBool: tells whether offline-mode is enabled 670 // NPNVOfflineBool: tells whether offline-mode is enabled
671 671
672 NPError rv = NPERR_GENERIC_ERROR; 672 NPError rv = NPERR_GENERIC_ERROR;
673 673
674 switch (static_cast<int>(variable)) { 674 switch (static_cast<int>(variable)) {
675 case NPNVWindowNPObject: { 675 case NPNVWindowNPObject: {
676 scoped_refptr<NPAPI::PluginInstance> plugin = FindInstance(id); 676 scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id));
677 NPObject *np_object = plugin->webplugin()->GetWindowScriptNPObject(); 677 NPObject *np_object = plugin->webplugin()->GetWindowScriptNPObject();
678 // Return value is expected to be retained, as 678 // Return value is expected to be retained, as
679 // described here: 679 // described here:
680 // <http://www.mozilla.org/projects/plugins/npruntime.html#browseraccess> 680 // <http://www.mozilla.org/projects/plugins/npruntime.html#browseraccess>
681 if (np_object) { 681 if (np_object) {
682 WebBindings::retainObject(np_object); 682 WebBindings::retainObject(np_object);
683 void **v = (void **)value; 683 void **v = (void **)value;
684 *v = np_object; 684 *v = np_object;
685 rv = NPERR_NO_ERROR; 685 rv = NPERR_NO_ERROR;
686 } else { 686 } else {
687 NOTREACHED(); 687 NOTREACHED();
688 } 688 }
689 break; 689 break;
690 } 690 }
691 case NPNVPluginElementNPObject: { 691 case NPNVPluginElementNPObject: {
692 scoped_refptr<NPAPI::PluginInstance> plugin = FindInstance(id); 692 scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id));
693 NPObject *np_object = plugin->webplugin()->GetPluginElement(); 693 NPObject *np_object = plugin->webplugin()->GetPluginElement();
694 // Return value is expected to be retained, as 694 // Return value is expected to be retained, as
695 // described here: 695 // described here:
696 // <http://www.mozilla.org/projects/plugins/npruntime.html#browseraccess> 696 // <http://www.mozilla.org/projects/plugins/npruntime.html#browseraccess>
697 if (np_object) { 697 if (np_object) {
698 WebBindings::retainObject(np_object); 698 WebBindings::retainObject(np_object);
699 void** v = static_cast<void**>(value); 699 void** v = static_cast<void**>(value);
700 *v = np_object; 700 *v = np_object;
701 rv = NPERR_NO_ERROR; 701 rv = NPERR_NO_ERROR;
702 } else { 702 } else {
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
736 break; 736 break;
737 #endif 737 #endif
738 case NPNVSupportsWindowless: { 738 case NPNVSupportsWindowless: {
739 NPBool* supports_windowless = reinterpret_cast<NPBool*>(value); 739 NPBool* supports_windowless = reinterpret_cast<NPBool*>(value);
740 *supports_windowless = true; 740 *supports_windowless = true;
741 rv = NPERR_NO_ERROR; 741 rv = NPERR_NO_ERROR;
742 break; 742 break;
743 } 743 }
744 case NPNVprivateModeBool: { 744 case NPNVprivateModeBool: {
745 NPBool* private_mode = reinterpret_cast<NPBool*>(value); 745 NPBool* private_mode = reinterpret_cast<NPBool*>(value);
746 scoped_refptr<NPAPI::PluginInstance> plugin = FindInstance(id); 746 scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id));
747 *private_mode = plugin->webplugin()->IsOffTheRecord(); 747 *private_mode = plugin->webplugin()->IsOffTheRecord();
748 rv = NPERR_NO_ERROR; 748 rv = NPERR_NO_ERROR;
749 break; 749 break;
750 } 750 }
751 case default_plugin::kMissingPluginStatusStart + 751 case default_plugin::kMissingPluginStatusStart +
752 default_plugin::MISSING_PLUGIN_AVAILABLE: 752 default_plugin::MISSING_PLUGIN_AVAILABLE:
753 // fall through 753 // fall through
754 case default_plugin::kMissingPluginStatusStart + 754 case default_plugin::kMissingPluginStatusStart +
755 default_plugin::MISSING_PLUGIN_USER_STARTED_DOWNLOAD: { 755 default_plugin::MISSING_PLUGIN_USER_STARTED_DOWNLOAD: {
756 // This is a hack for the default plugin to send notification to 756 // This is a hack for the default plugin to send notification to
757 // renderer. Even though we check if the plugin is the default plugin, 757 // renderer. Even though we check if the plugin is the default plugin,
758 // we still need to worry about future standard change that may conflict 758 // we still need to worry about future standard change that may conflict
759 // with the variable definition, in order to avoid duplicate case clauses 759 // with the variable definition, in order to avoid duplicate case clauses
760 // in this big switch statement. 760 // in this big switch statement.
761 scoped_refptr<NPAPI::PluginInstance> plugin = FindInstance(id); 761 scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id));
762 if (plugin->plugin_lib()->plugin_info().path.value() == 762 if (plugin->plugin_lib()->plugin_info().path.value() ==
763 kDefaultPluginLibraryName) { 763 kDefaultPluginLibraryName) {
764 plugin->webplugin()->OnMissingPluginStatus( 764 plugin->webplugin()->OnMissingPluginStatus(
765 variable - default_plugin::kMissingPluginStatusStart); 765 variable - default_plugin::kMissingPluginStatusStart);
766 } 766 }
767 break; 767 break;
768 } 768 }
769 #if defined(OS_MACOSX) 769 #if defined(OS_MACOSX)
770 case NPNVpluginDrawingModel: { 770 case NPNVpluginDrawingModel: {
771 // return the drawing model that was negotiated when we initialized. 771 // return the drawing model that was negotiated when we initialized.
772 scoped_refptr<NPAPI::PluginInstance> plugin = FindInstance(id); 772 scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id));
773 *reinterpret_cast<int*>(value) = plugin->drawing_model(); 773 *reinterpret_cast<int*>(value) = plugin->drawing_model();
774 rv = NPERR_NO_ERROR; 774 rv = NPERR_NO_ERROR;
775 break; 775 break;
776 } 776 }
777 #ifndef NP_NO_QUICKDRAW 777 #ifndef NP_NO_QUICKDRAW
778 case NPNVsupportsQuickDrawBool: { 778 case NPNVsupportsQuickDrawBool: {
779 // We do not admit to supporting the QuickDraw drawing model. The logic 779 // We do not admit to supporting the QuickDraw drawing model. The logic
780 // here is that our QuickDraw plugin support is so rudimentary that we 780 // here is that our QuickDraw plugin support is so rudimentary that we
781 // only want to use it as a fallback to keep plugins from crashing: if a 781 // only want to use it as a fallback to keep plugins from crashing: if a
782 // plugin knows enough to ask, we want them to use CoreGraphics. 782 // plugin knows enough to ask, we want them to use CoreGraphics.
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
831 default: 831 default:
832 DVLOG(1) << "NPN_GetValue(" << variable << ") is not implemented yet."; 832 DVLOG(1) << "NPN_GetValue(" << variable << ") is not implemented yet.";
833 break; 833 break;
834 } 834 }
835 return rv; 835 return rv;
836 } 836 }
837 837
838 NPError NPN_SetValue(NPP id, NPPVariable variable, void* value) { 838 NPError NPN_SetValue(NPP id, NPPVariable variable, void* value) {
839 // Allows the plugin to set various modes 839 // Allows the plugin to set various modes
840 840
841 scoped_refptr<NPAPI::PluginInstance> plugin = FindInstance(id); 841 scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id));
842 switch(variable) { 842 switch(variable) {
843 case NPPVpluginWindowBool: { 843 case NPPVpluginWindowBool: {
844 // Sets windowless mode for display of the plugin 844 // Sets windowless mode for display of the plugin
845 // Note: the documentation at 845 // Note: the documentation at
846 // http://developer.mozilla.org/en/docs/NPN_SetValue is wrong. When 846 // http://developer.mozilla.org/en/docs/NPN_SetValue is wrong. When
847 // value is NULL, the mode is set to true. This is the same way Mozilla 847 // value is NULL, the mode is set to true. This is the same way Mozilla
848 // works. 848 // works.
849 plugin->set_windowless(value == 0); 849 plugin->set_windowless(value == 0);
850 return NPERR_NO_ERROR; 850 return NPERR_NO_ERROR;
851 } 851 }
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
916 return NULL; 916 return NULL;
917 } 917 }
918 918
919 void* NPN_GetJavaPeer(NPP) { 919 void* NPN_GetJavaPeer(NPP) {
920 // TODO: implement me 920 // TODO: implement me
921 DVLOG(1) << "NPN_GetJavaPeer is not implemented."; 921 DVLOG(1) << "NPN_GetJavaPeer is not implemented.";
922 return NULL; 922 return NULL;
923 } 923 }
924 924
925 void NPN_PushPopupsEnabledState(NPP id, NPBool enabled) { 925 void NPN_PushPopupsEnabledState(NPP id, NPBool enabled) {
926 scoped_refptr<NPAPI::PluginInstance> plugin = FindInstance(id); 926 scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id));
927 if (plugin) 927 if (plugin)
928 plugin->PushPopupsEnabledState(enabled ? true : false); 928 plugin->PushPopupsEnabledState(enabled ? true : false);
929 } 929 }
930 930
931 void NPN_PopPopupsEnabledState(NPP id) { 931 void NPN_PopPopupsEnabledState(NPP id) {
932 scoped_refptr<NPAPI::PluginInstance> plugin = FindInstance(id); 932 scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id));
933 if (plugin) 933 if (plugin)
934 plugin->PopPopupsEnabledState(); 934 plugin->PopPopupsEnabledState();
935 } 935 }
936 936
937 void NPN_PluginThreadAsyncCall(NPP id, 937 void NPN_PluginThreadAsyncCall(NPP id,
938 void (*func)(void*), 938 void (*func)(void*),
939 void* user_data) { 939 void* user_data) {
940 scoped_refptr<NPAPI::PluginInstance> plugin = FindInstance(id); 940 scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id));
941 if (plugin) 941 if (plugin)
942 plugin->PluginThreadAsyncCall(func, user_data); 942 plugin->PluginThreadAsyncCall(func, user_data);
943 } 943 }
944 944
945 NPError NPN_GetValueForURL(NPP id, 945 NPError NPN_GetValueForURL(NPP id,
946 NPNURLVariable variable, 946 NPNURLVariable variable,
947 const char* url, 947 const char* url,
948 char** value, 948 char** value,
949 uint32_t* len) { 949 uint32_t* len) {
950 if (!id) 950 if (!id)
951 return NPERR_INVALID_PARAM; 951 return NPERR_INVALID_PARAM;
952 952
953 if (!url || !*url || !len) 953 if (!url || !*url || !len)
954 return NPERR_INVALID_URL; 954 return NPERR_INVALID_URL;
955 955
956 *len = 0; 956 *len = 0;
957 std::string result; 957 std::string result;
958 958
959 switch (variable) { 959 switch (variable) {
960 case NPNURLVProxy: { 960 case NPNURLVProxy: {
961 result = "DIRECT"; 961 result = "DIRECT";
962 if (!webkit_glue::FindProxyForUrl(GURL((std::string(url))), &result)) 962 if (!webkit_glue::FindProxyForUrl(GURL((std::string(url))), &result))
963 return NPERR_GENERIC_ERROR; 963 return NPERR_GENERIC_ERROR;
964 964
965 break; 965 break;
966 } 966 }
967 case NPNURLVCookie: { 967 case NPNURLVCookie: {
968 scoped_refptr<NPAPI::PluginInstance> plugin = FindInstance(id); 968 scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id));
969 if (!plugin) 969 if (!plugin)
970 return NPERR_GENERIC_ERROR; 970 return NPERR_GENERIC_ERROR;
971 971
972 webkit_glue::WebPlugin* webplugin = plugin->webplugin(); 972 webkit_glue::WebPlugin* webplugin = plugin->webplugin();
973 if (!webplugin) 973 if (!webplugin)
974 return NPERR_GENERIC_ERROR; 974 return NPERR_GENERIC_ERROR;
975 975
976 // Bypass third-party cookie blocking by using the url as the 976 // Bypass third-party cookie blocking by using the url as the
977 // first_party_for_cookies. 977 // first_party_for_cookies.
978 GURL cookies_url((std::string(url))); 978 GURL cookies_url((std::string(url)));
(...skipping 19 matching lines...) Expand all
998 const char* value, 998 const char* value,
999 uint32_t len) { 999 uint32_t len) {
1000 if (!id) 1000 if (!id)
1001 return NPERR_INVALID_PARAM; 1001 return NPERR_INVALID_PARAM;
1002 1002
1003 if (!url || !*url) 1003 if (!url || !*url)
1004 return NPERR_INVALID_URL; 1004 return NPERR_INVALID_URL;
1005 1005
1006 switch (variable) { 1006 switch (variable) {
1007 case NPNURLVCookie: { 1007 case NPNURLVCookie: {
1008 scoped_refptr<NPAPI::PluginInstance> plugin = FindInstance(id); 1008 scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id));
1009 if (!plugin) 1009 if (!plugin)
1010 return NPERR_GENERIC_ERROR; 1010 return NPERR_GENERIC_ERROR;
1011 1011
1012 webkit_glue::WebPlugin* webplugin = plugin->webplugin(); 1012 webkit_glue::WebPlugin* webplugin = plugin->webplugin();
1013 if (!webplugin) 1013 if (!webplugin)
1014 return NPERR_GENERIC_ERROR; 1014 return NPERR_GENERIC_ERROR;
1015 1015
1016 std::string cookie(value, len); 1016 std::string cookie(value, len);
1017 GURL cookies_url((std::string(url))); 1017 GURL cookies_url((std::string(url)));
1018 webplugin->SetCookie(cookies_url, cookies_url, cookie); 1018 webplugin->SetCookie(cookies_url, cookies_url, cookie);
(...skipping 25 matching lines...) Expand all
1044 return NPERR_INVALID_PARAM; 1044 return NPERR_INVALID_PARAM;
1045 1045
1046 // TODO: implement me (bug 23928) 1046 // TODO: implement me (bug 23928)
1047 return NPERR_GENERIC_ERROR; 1047 return NPERR_GENERIC_ERROR;
1048 } 1048 }
1049 1049
1050 uint32_t NPN_ScheduleTimer(NPP id, 1050 uint32_t NPN_ScheduleTimer(NPP id,
1051 uint32_t interval, 1051 uint32_t interval,
1052 NPBool repeat, 1052 NPBool repeat,
1053 void (*func)(NPP id, uint32_t timer_id)) { 1053 void (*func)(NPP id, uint32_t timer_id)) {
1054 scoped_refptr<NPAPI::PluginInstance> plugin = FindInstance(id); 1054 scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id));
1055 if (!plugin) 1055 if (!plugin)
1056 return 0; 1056 return 0;
1057 1057
1058 return plugin->ScheduleTimer(interval, repeat, func); 1058 return plugin->ScheduleTimer(interval, repeat, func);
1059 } 1059 }
1060 1060
1061 void NPN_UnscheduleTimer(NPP id, uint32_t timer_id) { 1061 void NPN_UnscheduleTimer(NPP id, uint32_t timer_id) {
1062 scoped_refptr<NPAPI::PluginInstance> plugin = FindInstance(id); 1062 scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id));
1063 if (plugin) 1063 if (plugin)
1064 plugin->UnscheduleTimer(timer_id); 1064 plugin->UnscheduleTimer(timer_id);
1065 } 1065 }
1066 1066
1067 NPError NPN_PopUpContextMenu(NPP id, NPMenu* menu) { 1067 NPError NPN_PopUpContextMenu(NPP id, NPMenu* menu) {
1068 if (!menu) 1068 if (!menu)
1069 return NPERR_INVALID_PARAM; 1069 return NPERR_INVALID_PARAM;
1070 1070
1071 scoped_refptr<NPAPI::PluginInstance> plugin = FindInstance(id); 1071 scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id));
1072 if (plugin.get()) { 1072 if (plugin.get()) {
1073 return plugin->PopUpContextMenu(menu); 1073 return plugin->PopUpContextMenu(menu);
1074 } 1074 }
1075 NOTREACHED(); 1075 NOTREACHED();
1076 return NPERR_GENERIC_ERROR; 1076 return NPERR_GENERIC_ERROR;
1077 } 1077 }
1078 1078
1079 NPBool NPN_ConvertPoint(NPP id, double sourceX, double sourceY, 1079 NPBool NPN_ConvertPoint(NPP id, double sourceX, double sourceY,
1080 NPCoordinateSpace sourceSpace, 1080 NPCoordinateSpace sourceSpace,
1081 double *destX, double *destY, 1081 double *destX, double *destY,
1082 NPCoordinateSpace destSpace) { 1082 NPCoordinateSpace destSpace) {
1083 scoped_refptr<NPAPI::PluginInstance> plugin = FindInstance(id); 1083 scoped_refptr<NPAPI::PluginInstance> plugin(FindInstance(id));
1084 if (plugin.get()) { 1084 if (plugin.get()) {
1085 return plugin->ConvertPoint(sourceX, sourceY, sourceSpace, 1085 return plugin->ConvertPoint(sourceX, sourceY, sourceSpace,
1086 destX, destY, destSpace); 1086 destX, destY, destSpace);
1087 } 1087 }
1088 NOTREACHED(); 1088 NOTREACHED();
1089 return false; 1089 return false;
1090 } 1090 }
1091 1091
1092 } // extern "C" 1092 } // extern "C"
OLDNEW
« no previous file with comments | « webkit/glue/plugins/npapi_extension_thunk.cc ('k') | webkit/glue/plugins/plugin_lib_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698