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/child/npapi/plugin_host.h" | 5 #include "content/child/npapi/plugin_host.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <string.h> | 8 #include <string.h> |
9 | 9 |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 499 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
510 NPError NPN_GetValue(NPP id, NPNVariable variable, void* value) { | 510 NPError NPN_GetValue(NPP id, NPNVariable variable, void* value) { |
511 // Allows the plugin to query the browser for information | 511 // Allows the plugin to query the browser for information |
512 // | 512 // |
513 // Variables: | 513 // Variables: |
514 // NPNVxDisplay (unix only) | 514 // NPNVxDisplay (unix only) |
515 // NPNVxtAppContext (unix only) | 515 // NPNVxtAppContext (unix only) |
516 // NPNVnetscapeWindow (win only) - Gets the native window on which the | 516 // NPNVnetscapeWindow (win only) - Gets the native window on which the |
517 // plugin drawing occurs, returns HWND | 517 // plugin drawing occurs, returns HWND |
518 // NPNVjavascriptEnabledBool: tells whether Javascript is enabled | 518 // NPNVjavascriptEnabledBool: tells whether Javascript is enabled |
519 // NPNVasdEnabledBool: tells whether SmartUpdate is enabled | 519 // NPNVasdEnabledBool: tells whether SmartUpdate is enabled |
520 // NPNVOfflineBool: tells whether offline-mode is enabled | 520 // NPNVOfflineBool: tells whether offline-mode is enabled |
Wez
2016/01/14 21:57:08
nit: While you're here... this comment seems almos
dcheng
2016/01/14 22:05:50
It's probably wrong, but given the size of this pa
| |
521 | 521 |
522 NPError rv = NPERR_GENERIC_ERROR; | 522 NPError rv = NPERR_GENERIC_ERROR; |
523 | 523 |
524 switch (static_cast<int>(variable)) { | 524 switch (static_cast<int>(variable)) { |
525 case NPNVWindowNPObject: { | 525 case NPNVWindowNPObject: |
526 scoped_refptr<PluginInstance> plugin(FindInstance(id)); | 526 case NPNVPluginElementNPObject: |
527 if (!plugin.get()) { | 527 return NPERR_INVALID_INSTANCE_ERROR; |
Wez
2016/01/14 21:57:08
You're not failing here because the plugin instanc
dcheng
2016/01/14 22:05:50
I'll update this in the next rebasing + update pat
Wez
2016/01/19 17:58:28
ACK
| |
528 NOTREACHED(); | |
529 return NPERR_INVALID_INSTANCE_ERROR; | |
530 } | |
531 NPObject *np_object = plugin->webplugin()->GetWindowScriptNPObject(); | |
532 // Return value is expected to be retained, as | |
533 // described here: | |
534 // <http://www.mozilla.org/projects/plugins/npruntime.html#browseraccess> | |
535 if (np_object) { | |
536 WebBindings::retainObject(np_object); | |
537 void **v = (void **)value; | |
538 *v = np_object; | |
539 rv = NPERR_NO_ERROR; | |
540 } else { | |
541 NOTREACHED(); | |
542 } | |
543 break; | |
544 } | |
545 case NPNVPluginElementNPObject: { | |
546 scoped_refptr<PluginInstance> plugin(FindInstance(id)); | |
547 if (!plugin.get()) { | |
548 NOTREACHED(); | |
549 return NPERR_INVALID_INSTANCE_ERROR; | |
550 } | |
551 NPObject *np_object = plugin->webplugin()->GetPluginElement(); | |
552 // Return value is expected to be retained, as | |
553 // described here: | |
554 // <http://www.mozilla.org/projects/plugins/npruntime.html#browseraccess> | |
555 if (np_object) { | |
556 WebBindings::retainObject(np_object); | |
557 void** v = static_cast<void**>(value); | |
558 *v = np_object; | |
559 rv = NPERR_NO_ERROR; | |
560 } else { | |
561 NOTREACHED(); | |
562 } | |
563 break; | |
564 } | |
565 #if !defined(OS_MACOSX) // OS X doesn't have windowed plugins. | 528 #if !defined(OS_MACOSX) // OS X doesn't have windowed plugins. |
566 case NPNVnetscapeWindow: { | 529 case NPNVnetscapeWindow: { |
567 scoped_refptr<PluginInstance> plugin = FindInstance(id); | 530 scoped_refptr<PluginInstance> plugin = FindInstance(id); |
568 if (!plugin.get()) { | 531 if (!plugin.get()) { |
569 NOTREACHED(); | 532 NOTREACHED(); |
570 return NPERR_INVALID_INSTANCE_ERROR; | 533 return NPERR_INVALID_INSTANCE_ERROR; |
571 } | 534 } |
572 gfx::PluginWindowHandle handle = plugin->window_handle(); | 535 gfx::PluginWindowHandle handle = plugin->window_handle(); |
573 *((void**)value) = (void*)handle; | 536 *((void**)value) = (void*)handle; |
574 rv = NPERR_NO_ERROR; | 537 rv = NPERR_NO_ERROR; |
(...skipping 354 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
929 NPBool NPN_UnfocusInstance(NPP id, NPFocusDirection direction) { | 892 NPBool NPN_UnfocusInstance(NPP id, NPFocusDirection direction) { |
930 // TODO: Implement advanced key handling: http://crbug.com/46578 | 893 // TODO: Implement advanced key handling: http://crbug.com/46578 |
931 NOTIMPLEMENTED(); | 894 NOTIMPLEMENTED(); |
932 return false; | 895 return false; |
933 } | 896 } |
934 | 897 |
935 void NPN_URLRedirectResponse(NPP instance, void* notify_data, NPBool allow) { | 898 void NPN_URLRedirectResponse(NPP instance, void* notify_data, NPBool allow) { |
936 } | 899 } |
937 | 900 |
938 } // extern "C" | 901 } // extern "C" |
OLD | NEW |