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