Upstreaming browser/ui/uikit_ui_util from iOS.
[chromium-blink-merge.git] / content / shell / tools / plugin / PluginObject.h
blob0c037e82dc21266d9945820e1d3213c75c114341
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 /*
6 * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
10 * are met:
11 * 1. Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.
13 * 2. Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in the
15 * documentation and/or other materials provided with the distribution.
17 * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
18 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
20 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
21 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
22 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
23 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
24 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
25 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 #ifndef PluginObject_h
31 #define PluginObject_h
33 #include <bindings/npfunctions.h>
34 #include <stdarg.h>
36 class PluginTest;
38 extern NPNetscapeFuncs *browser;
39 extern NPPluginFuncs* pluginFunctions;
41 typedef struct {
42 NPObject header;
44 PluginTest* pluginTest;
46 NPP npp;
47 NPBool eventLogging;
48 NPBool logSetWindow;
49 NPBool logDestroy;
50 NPBool returnNegativeOneFromWrite;
51 NPBool returnErrorFromNewStream;
52 NPObject* testObject;
53 NPObject* rememberedObject;
54 NPStream* stream;
55 NPBool testGetURLOnDestroy;
56 NPBool testWindowOpen;
57 NPBool testKeyboardFocusForPlugins;
58 NPBool mouseDownForEvaluateScript;
59 char* onStreamLoad;
60 char* onStreamDestroy;
61 char* onDestroy;
62 char* onURLNotify;
63 char* onSetWindow;
64 char* onPaintEvent;
65 char* firstUrl;
66 char* firstHeaders;
67 char* lastUrl;
68 char* lastHeaders;
69 char* evaluateScriptOnMouseDownOrKeyDown;
70 #ifdef XP_MACOSX
71 NPEventModel eventModel;
72 #endif
73 #ifdef XP_MACOSX
74 void* coreAnimationLayer;
75 #endif
76 NPWindow lastWindow;
77 NPBool alwaysFilterEvents;
78 } PluginObject;
80 extern NPClass* createPluginClass(void);
82 extern void handleCallback(PluginObject* object,
83 const char* url,
84 NPReason reason,
85 void* notifyData);
86 extern void notifyStream(PluginObject* object,
87 const char* url,
88 const char* headers);
89 extern void testNPRuntime(NPP npp);
90 extern void pluginLog(NPP instance, const char* format, ...);
91 extern void pluginLogWithArguments(NPP instance,
92 const char* format,
93 va_list args);
94 extern bool testDocumentOpen(NPP npp);
95 extern bool testWindowOpen(NPP npp);
97 #ifdef XP_MACOSX
98 extern void* createCoreAnimationLayer();
99 #endif
101 #endif // PluginObject_h