18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*
28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright (C) 2008 Kevin Ollivier <kevino@theolliviers.com> 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 * 1. Redistributions of source code must retain the above copyright
88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *    notice, this list of conditions and the following disclaimer.
98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 2. Redistributions in binary form must reproduce the above copyright
108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *    notice, this list of conditions and the following disclaimer in the
118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *    documentation and/or other materials provided with the distribution.
128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "config.h"
278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "PluginView.h"
288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
29dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#if USE(JSC)
3053733164eb6cabab5a1eddcabb42e4ce27eb0e44Ben Murdoch#include "BridgeJSC.h"
312bde8e466a4451c7319e3a072d118917957d6554Steve Block#include <runtime/JSObject.h>
3281bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#include <runtime/ScopeChain.h>
33dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#endif
34dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch
358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectusing namespace WTF;
368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectnamespace WebCore {
388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
3921939df44de1705786c545cd1bf519d47250322dBen Murdochvoid PluginView::setFocus(bool)
408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid PluginView::show()
448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid PluginView::hide()
488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
518f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qianvoid PluginView::paint(GraphicsContext*, const IntRect&)
528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
558f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qianvoid PluginView::handleKeyboardEvent(KeyboardEvent*)
568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
598f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qianvoid PluginView::handleMouseEvent(MouseEvent*)
608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
638f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qianvoid PluginView::setParent(ScrollView*)
648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
678f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qianvoid PluginView::setNPWindowRect(const IntRect&)
688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
71e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block#if ENABLE(NETSCAPE_PLUGIN_API)
7221939df44de1705786c545cd1bf519d47250322dBen MurdochNPError PluginView::handlePostReadFile(Vector<char>&, uint32_t, const char*)
738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    return 0;
758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
77dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockbool PluginView::platformGetValue(NPNVariable, void*, NPError*)
788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
79dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    return false;
808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
82dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockbool PluginView::platformGetValueStatic(NPNVariable, void*, NPError*)
835f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian{
84dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    return false;
855f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian}
865f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian
878f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qianvoid PluginView::invalidateRect(NPRect*)
888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
90e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block#endif
918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid PluginView::invalidateRect(const IntRect&)
938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
96e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block#if ENABLE(NETSCAPE_PLUGIN_API)
978f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qianvoid PluginView::invalidateRegion(NPRegion)
988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
100e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block#endif
1018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid PluginView::forceRedraw()
1038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
1048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
1058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
106231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Blockbool PluginView::platformStart()
1078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
108231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    return true;
1098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
1108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
111231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Blockvoid PluginView::platformDestroy()
1128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
1138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
1148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid PluginView::setParentVisible(bool)
1168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
1178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
1188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
119635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Projectvoid PluginView::updatePluginWidget()
1208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
1218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
1228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
123231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Blockvoid PluginView::halt()
124231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block{
125231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block}
126231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
127231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Blockvoid PluginView::restart()
1280bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch{
1290bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch}
1300bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
13106ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen#if defined(XP_UNIX) && ENABLE(NETSCAPE_PLUGIN_API)
13206ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenvoid PluginView::handleFocusInEvent()
1338a0914b749bbe7da7768e07a7db5c6d4bb09472bSteve Block{
1348a0914b749bbe7da7768e07a7db5c6d4bb09472bSteve Block}
135dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
13606ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenvoid PluginView::handleFocusOutEvent()
137dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block{
138dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block}
13906ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen#endif
140dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
14106ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen// The functions below are for platforms that do not use PluginView for plugins
14206ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen// due to architectural differences. The plan is to eventually have all
14306ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen// ports using PluginView, but until then, if new functions like this are
14406ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen// added, please make sure they have the proper platform #ifs so that changes
14506ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen// do not break ports who compile both this file and PluginView.cpp.
1465ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen#if PLATFORM(MAC) || PLATFORM(CHROMIUM) || PLATFORM(EFL) || (OS(WINCE) && !PLATFORM(QT)) || (PLATFORM(QT) && !OS(WINCE)) || PLATFORM(BREWMP)
14706ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen#if ENABLE(NETSCAPE_PLUGIN_API)
14806ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenvoid PluginView::keepAlive(NPP)
149dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block{
150dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block}
15121939df44de1705786c545cd1bf519d47250322dBen Murdoch#endif
152dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
153dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#if USE(JSC)
154dd8bb3de4f353a81954234999f1fea748aee2ea9Ben MurdochPassRefPtr<JSC::Bindings::Instance> PluginView::bindingInstance()
155dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch{
156dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch    return 0;
157dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch}
158dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#endif
159dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch
16006ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenvoid PluginView::privateBrowsingStateChanged(bool)
161dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block{
162dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block}
163dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
16406ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenvoid PluginView::setJavaScriptPaused(bool)
165dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block{
166dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block}
167dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#endif
1688a0914b749bbe7da7768e07a7db5c6d4bb09472bSteve Block
1698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} // namespace WebCore
170