18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*
28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright (C) 2005 Apple Computer, Inc.  All rights reserved.
38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Redistribution and use in source and binary forms, with or without
58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * modification, are permitted provided that the following conditions
68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * are met:
78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 1.  Redistributions of source code must retain the above copyright
98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *     notice, this list of conditions and the following disclaimer.
108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 2.  Redistributions in binary form must reproduce the above copyright
118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *     notice, this list of conditions and the following disclaimer in the
128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *     documentation and/or other materials provided with the distribution.
138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *     its contributors may be used to endorse or promote products derived
158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *     from this software without specific prior written permission.
168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if ENABLE(NETSCAPE_PLUGIN_API)
308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#import <WebKit/npapi.h>
318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
32635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#import "WebNetscapePluginView.h"
338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#import "WebKitLogging.h"
348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#import <WebCore/PluginMainThreadScheduler.h>
358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectusing namespace WebCore;
378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
38635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source ProjectWebNetscapePluginView *pluginViewForInstance(NPP instance);
398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project// general plug-in to browser functions
418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
4221939df44de1705786c545cd1bf519d47250322dBen Murdochvoid* NPN_MemAlloc(uint32_t size)
438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return malloc(size);
458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid NPN_MemFree(void* ptr)
488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    free(ptr);
508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
5221939df44de1705786c545cd1bf519d47250322dBen Murdochuint32_t NPN_MemFlush(uint32_t size)
538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    LOG(Plugins, "NPN_MemFlush");
558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return size;
568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid NPN_ReloadPlugins(NPBool reloadPages)
598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    LOG(Plugins, "NPN_ReloadPlugins");
618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectNPError NPN_RequestRead(NPStream* stream, NPByteRange* rangeList)
648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    LOG(Plugins, "NPN_RequestRead");
668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return NPERR_GENERIC_ERROR;
678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project// instance-specific functions
708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project// The plugin view is always the ndata of the instance. Sometimes, plug-ins will call an instance-specific function
718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project// with a NULL instance. To workaround this, call the last plug-in view that made a call to a plug-in.
72635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project// Currently, the current plug-in view is only set before NPP_New in [WebNetscapePluginView start].
738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project// This specifically works around Flash and Shockwave. When we call NPP_New, they call NPN_UserAgent with a NULL instance.
74635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source ProjectWebNetscapePluginView *pluginViewForInstance(NPP instance)
758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    if (instance && instance->ndata)
77635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project        return (WebNetscapePluginView *)instance->ndata;
788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    else
79635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project        return [WebNetscapePluginView currentPluginView];
808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectNPError NPN_GetURLNotify(NPP instance, const char* URL, const char* target, void* notifyData)
838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return [pluginViewForInstance(instance) getURLNotify:URL target:target notifyData:notifyData];
858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectNPError NPN_GetURL(NPP instance, const char* URL, const char* target)
888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return [pluginViewForInstance(instance) getURL:URL target:target];
908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
9221939df44de1705786c545cd1bf519d47250322dBen MurdochNPError NPN_PostURLNotify(NPP instance, const char* URL, const char* target, uint32_t len, const char* buf, NPBool file, void* notifyData)
938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return [pluginViewForInstance(instance) postURLNotify:URL target:target len:len buf:buf file:file notifyData:notifyData];
958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
9721939df44de1705786c545cd1bf519d47250322dBen MurdochNPError NPN_PostURL(NPP instance, const char* URL, const char* target, uint32_t len, const char* buf, NPBool file)
988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return [pluginViewForInstance(instance) postURL:URL target:target len:len buf:buf file:file];
1008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
1018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectNPError NPN_NewStream(NPP instance, NPMIMEType type, const char* target, NPStream** stream)
1038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
1048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return [pluginViewForInstance(instance) newStream:type target:target stream:stream];
1058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
1068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
10721939df44de1705786c545cd1bf519d47250322dBen Murdochint32_t NPN_Write(NPP instance, NPStream* stream, int32_t len, void* buffer)
1088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
1098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return [pluginViewForInstance(instance) write:stream len:len buffer:buffer];
1108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
1118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectNPError NPN_DestroyStream(NPP instance, NPStream* stream, NPReason reason)
1138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
1148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return [pluginViewForInstance(instance) destroyStream:stream reason:reason];
1158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
1168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectconst char* NPN_UserAgent(NPP instance)
1188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
1198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return [pluginViewForInstance(instance) userAgent];
1208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
1218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid NPN_Status(NPP instance, const char* message)
1238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
1248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    [pluginViewForInstance(instance) status:message];
1258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
1268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid NPN_InvalidateRect(NPP instance, NPRect *invalidRect)
1288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
1298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    [pluginViewForInstance(instance) invalidateRect:invalidRect];
1308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
1318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid NPN_InvalidateRegion(NPP instance, NPRegion invalidRegion)
1338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
1348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    [pluginViewForInstance(instance) invalidateRegion:invalidRegion];
1358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
1368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid NPN_ForceRedraw(NPP instance)
1388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
1398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    [pluginViewForInstance(instance) forceRedraw];
1408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
1418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectNPError NPN_GetValue(NPP instance, NPNVariable variable, void *value)
1438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
1448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return [pluginViewForInstance(instance) getVariable:variable value:value];
1458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
1468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectNPError NPN_SetValue(NPP instance, NPPVariable variable, void *value)
1488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
1498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return [pluginViewForInstance(instance) setVariable:variable value:value];
1508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
1518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project// Unsupported functions
1538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid* NPN_GetJavaEnv(void)
1558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
1568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    LOG(Plugins, "NPN_GetJavaEnv");
1578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return NULL;
1588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
1598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid* NPN_GetJavaPeer(NPP instance)
1618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
1628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    LOG(Plugins, "NPN_GetJavaPeer");
1638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return NULL;
1648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
1658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid NPN_PushPopupsEnabledState(NPP instance, NPBool enabled)
1678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
1688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
1698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid NPN_PopPopupsEnabledState(NPP instance)
1718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
1728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
1738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid NPN_PluginThreadAsyncCall(NPP instance, void (*func) (void *), void *userData)
1758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
1768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    PluginMainThreadScheduler::scheduler().scheduleCall(instance, func, userData);
1778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
1788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
17921939df44de1705786c545cd1bf519d47250322dBen Murdochuint32_t NPN_ScheduleTimer(NPP instance, uint32_t interval, NPBool repeat, void (*timerFunc)(NPP npp, uint32_t timerID))
1808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
1818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return [pluginViewForInstance(instance) scheduleTimerWithInterval:interval repeat:repeat timerFunc:timerFunc];
1828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
1838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
18421939df44de1705786c545cd1bf519d47250322dBen Murdochvoid NPN_UnscheduleTimer(NPP instance, uint32_t timerID)
1858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
1868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    [pluginViewForInstance(instance) unscheduleTimer:timerID];
1878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
1888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectNPError NPN_PopUpContextMenu(NPP instance, NPMenu *menu)
1908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
1918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return [pluginViewForInstance(instance) popUpContextMenu:menu];
1928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
1938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
19421939df44de1705786c545cd1bf519d47250322dBen MurdochNPError NPN_GetValueForURL(NPP instance, NPNURLVariable variable, const char* url, char** value, uint32_t* len)
1950bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch{
1960bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    return [pluginViewForInstance(instance) getVariable:variable forURL:url value:value length:len];
1970bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch}
1980bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
19921939df44de1705786c545cd1bf519d47250322dBen MurdochNPError NPN_SetValueForURL(NPP instance, NPNURLVariable variable, const char* url, const char* value, uint32_t len)
2000bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch{
2010bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    return [pluginViewForInstance(instance) setVariable:variable forURL:url value:value length:len];
2020bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch}
2030bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
20421939df44de1705786c545cd1bf519d47250322dBen MurdochNPError NPN_GetAuthenticationInfo(NPP instance, const char* protocol, const char* host, int32_t port, const char* scheme, const char *realm, char** username, uint32_t* ulen, char** password, uint32_t* plen)
2050bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch{
2060bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    return [pluginViewForInstance(instance) getAuthenticationInfoWithProtocol:protocol
2070bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch                                                                         host:host
2080bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch                                                                         port:port
2090bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch                                                                       scheme:scheme
2100bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch                                                                        realm:realm
2110bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch                                                                     username:username usernameLength:ulen
2120bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch                                                                     password:password passwordLength:plen];
2130bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch}
2140bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
2150bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben MurdochNPBool NPN_ConvertPoint(NPP instance, double sourceX, double sourceY, NPCoordinateSpace sourceSpace, double *destX, double *destY, NPCoordinateSpace destSpace)
2160bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch{
2170bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    return [pluginViewForInstance(instance) convertFromX:sourceX andY:sourceY space:sourceSpace toX:destX andY:destY space:destSpace];
2180bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch}
2190bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
22021939df44de1705786c545cd1bf519d47250322dBen Murdochuint32_t WKN_CheckIfAllowedToLoadURL(NPP instance, const char* url, const char* frame, void (*callbackFunc)(NPP npp, uint32_t, NPBool, void*), void* context)
2210bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch{
2220bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    return [pluginViewForInstance(instance) checkIfAllowedToLoadURL:url frame:frame callbackFunc:callbackFunc context:context];
2230bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch}
2240bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
22521939df44de1705786c545cd1bf519d47250322dBen Murdochvoid WKN_CancelCheckIfAllowedToLoadURL(NPP instance, uint32_t checkID)
2260bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch{
2270bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    [pluginViewForInstance(instance) cancelCheckIfAllowedToLoadURL:checkID];
2280bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch}
2290bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
2300bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochchar* WKN_ResolveURL(NPP instance, const char* url, const char* target)
2310bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch{
2320bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    return [pluginViewForInstance(instance) resolveURL:url forTarget:target];
2330bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch}
2340bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
2358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif
236