Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 <stdio.h> | 5 #include <stdio.h> |
| 6 #include <string.h> | 6 #include <string.h> |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 577 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 588 : instance_(instance), scriptable_object_(NULL) {} | 588 : instance_(instance), scriptable_object_(NULL) {} |
| 589 | 589 |
| 590 ~HostNPPlugin() { | 590 ~HostNPPlugin() { |
| 591 if (scriptable_object_) { | 591 if (scriptable_object_) { |
| 592 g_npnetscape_funcs->releaseobject(scriptable_object_); | 592 g_npnetscape_funcs->releaseobject(scriptable_object_); |
| 593 scriptable_object_ = NULL; | 593 scriptable_object_ = NULL; |
| 594 } | 594 } |
| 595 } | 595 } |
| 596 | 596 |
| 597 bool Init(int16 argc, char** argn, char** argv, NPSavedData* saved) { | 597 bool Init(int16 argc, char** argn, char** argv, NPSavedData* saved) { |
| 598 #if defined(OS_MACOSX) | |
| 599 // Use the modern CoreGraphics and Cocoa models when available, since | |
| 600 // QuickDraw and Carbon are deprecated. | |
| 601 // The drawing and event models don't change anything for this plugin, since | |
| 602 // none of the functions affected by the models actually do anything. | |
| 603 // This does however keep the plugin from breaking when Chromium eventually | |
| 604 // drops support for QuickDraw and Carbon, and it also keeps the browser | |
| 605 // from sending Null Events once a second to support old Carbon based | |
| 606 // timers. | |
| 607 // Chromium should always be supporting the newer models. | |
| 608 | |
| 609 // Bozo check to see if Chromium supports the CoreGraphics drawing model. | |
| 610 NPBool supports_core_graphics = false; | |
| 611 NPError err = g_npnetscape_funcs->getvalue(instance_, | |
| 612 NPNVsupportsCoreGraphicsBool, | |
| 613 &supports_core_graphics); | |
| 614 if (err == NPERR_NO_ERROR && supports_core_graphics) { | |
|
Wez
2011/05/25 03:21:22
No need to do separate check for support prior to
| |
| 615 // Switch to CoreGraphics drawing model. | |
| 616 g_npnetscape_funcs->setvalue(instance_, NPPVpluginDrawingModel, | |
| 617 reinterpret_cast<void*>(NPDrawingModelCoreGraphics)); | |
| 618 } else { | |
| 619 LOG(ERROR) << "No Core Graphics support"; | |
| 620 return false; | |
| 621 } | |
| 622 | |
| 623 // Bozo check to see if Chromium supports the Cocoa event model. | |
| 624 NPBool supports_cocoa = false; | |
| 625 err = g_npnetscape_funcs->getvalue(instance_, NPNVsupportsCocoaBool, | |
| 626 &supports_cocoa); | |
|
awong
2011/05/24 20:22:36
nit: needs one more space.
| |
| 627 if (err == NPERR_NO_ERROR && supports_cocoa) { | |
| 628 // Switch to Cocoa event model. | |
| 629 g_npnetscape_funcs->setvalue(instance_, NPPVpluginEventModel, | |
| 630 reinterpret_cast<void*>(NPEventModelCocoa)); | |
| 631 } else { | |
| 632 LOG(ERROR) << "No Cocoa Event Model support"; | |
| 633 return false; | |
| 634 } | |
| 635 #endif // OS_MACOSX | |
| 598 return true; | 636 return true; |
| 599 } | 637 } |
| 600 | 638 |
| 601 bool Save(NPSavedData** saved) { | 639 bool Save(NPSavedData** saved) { |
| 602 return true; | 640 return true; |
| 603 } | 641 } |
| 604 | 642 |
| 605 NPObject* GetScriptableObject() { | 643 NPObject* GetScriptableObject() { |
| 606 if (!scriptable_object_) { | 644 if (!scriptable_object_) { |
| 607 // Must be static. If it is a temporary, objects created by this | 645 // Must be static. If it is a temporary, objects created by this |
| (...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 901 return STRINGIZE(HOST_PLUGIN_MIME_TYPE) ":" | 939 return STRINGIZE(HOST_PLUGIN_MIME_TYPE) ":" |
| 902 HOST_PLUGIN_NAME ":" | 940 HOST_PLUGIN_NAME ":" |
| 903 HOST_PLUGIN_DESCRIPTION; | 941 HOST_PLUGIN_DESCRIPTION; |
| 904 } | 942 } |
| 905 | 943 |
| 906 OSCALL NPError NP_GetValue(void* npp, NPPVariable variable, void* value) { | 944 OSCALL NPError NP_GetValue(void* npp, NPPVariable variable, void* value) { |
| 907 return GetValue((NPP)npp, variable, value); | 945 return GetValue((NPP)npp, variable, value); |
| 908 } | 946 } |
| 909 | 947 |
| 910 } // extern "C" | 948 } // extern "C" |
| OLD | NEW |