PluginObject.h 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. /*
  2. * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
  3. *
  4. * Redistribution and use in source and binary forms, with or without
  5. * modification, are permitted provided that the following conditions
  6. * are met:
  7. * 1. Redistributions of source code must retain the above copyright
  8. * notice, this list of conditions and the following disclaimer.
  9. * 2. Redistributions in binary form must reproduce the above copyright
  10. * notice, this list of conditions and the following disclaimer in the
  11. * documentation and/or other materials provided with the distribution.
  12. *
  13. * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
  14. * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  15. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  16. * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
  17. * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  18. * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  19. * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  20. * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
  21. * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  22. * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  23. * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  24. */
  25. #ifndef PluginObject_h
  26. #define PluginObject_h
  27. #include <WebKit/npfunctions.h>
  28. #include <stdarg.h>
  29. class PluginTest;
  30. extern NPNetscapeFuncs *browser;
  31. extern NPPluginFuncs* pluginFunctions;
  32. typedef struct {
  33. NPObject header;
  34. PluginTest* pluginTest;
  35. NPP npp;
  36. NPBool eventLogging;
  37. NPBool logSetWindow;
  38. NPBool logDestroy;
  39. NPBool returnNegativeOneFromWrite;
  40. NPBool returnErrorFromNewStream;
  41. NPObject* testObject;
  42. NPObject* rememberedObject;
  43. NPStream* stream;
  44. NPBool testGetURLOnDestroy;
  45. NPBool testWindowOpen;
  46. NPBool testKeyboardFocusForPlugins;
  47. NPBool mouseDownForEvaluateScript;
  48. char* onStreamLoad;
  49. char* onStreamDestroy;
  50. char* onDestroy;
  51. char* onURLNotify;
  52. char* onSetWindow;
  53. char* onPaintEvent;
  54. char* firstUrl;
  55. char* firstHeaders;
  56. char* lastUrl;
  57. char* lastHeaders;
  58. char* evaluateScriptOnMouseDownOrKeyDown;
  59. #ifdef XP_MACOSX
  60. NPEventModel eventModel;
  61. #endif
  62. #ifdef XP_MACOSX
  63. void* coreAnimationLayer;
  64. #endif
  65. NPWindow lastWindow;
  66. } PluginObject;
  67. extern NPClass *getPluginClass(void);
  68. extern void handleCallback(PluginObject* object, const char *url, NPReason reason, void *notifyData);
  69. extern void notifyStream(PluginObject* object, const char *url, const char *headers);
  70. extern void testNPRuntime(NPP npp);
  71. extern void pluginLog(NPP instance, const char* format, ...);
  72. extern void pluginLogWithArguments(NPP instance, const char* format, va_list args);
  73. extern bool testDocumentOpen(NPP npp);
  74. extern bool testWindowOpen(NPP npp);
  75. #ifdef XP_MACOSX
  76. extern void* createCoreAnimationLayer();
  77. #endif
  78. #endif // PluginObject_h