| Index: webkit/glue/plugins/test/plugin_client.cc
|
| ===================================================================
|
| --- webkit/glue/plugins/test/plugin_client.cc (revision 69426)
|
| +++ webkit/glue/plugins/test/plugin_client.cc (working copy)
|
| @@ -1,240 +0,0 @@
|
| -// Copyright (c) 2009 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "webkit/glue/plugins/test/plugin_client.h"
|
| -
|
| -#include "base/string_util.h"
|
| -#include "webkit/glue/plugins/test/plugin_test.h"
|
| -#include "webkit/glue/plugins/test/plugin_test_factory.h"
|
| -
|
| -namespace NPAPIClient {
|
| -
|
| -NPNetscapeFuncs* PluginClient::host_functions_;
|
| -
|
| -NPError PluginClient::GetEntryPoints(NPPluginFuncs* pFuncs) {
|
| - if (pFuncs == NULL)
|
| - return NPERR_INVALID_FUNCTABLE_ERROR;
|
| -
|
| - if (pFuncs->size < sizeof(NPPluginFuncs))
|
| - return NPERR_INVALID_FUNCTABLE_ERROR;
|
| -
|
| - pFuncs->version = (NP_VERSION_MAJOR << 8) | NP_VERSION_MINOR;
|
| - pFuncs->newp = NPP_New;
|
| - pFuncs->destroy = NPP_Destroy;
|
| - pFuncs->setwindow = NPP_SetWindow;
|
| - pFuncs->newstream = NPP_NewStream;
|
| - pFuncs->destroystream = NPP_DestroyStream;
|
| - pFuncs->asfile = NPP_StreamAsFile;
|
| - pFuncs->writeready = NPP_WriteReady;
|
| - pFuncs->write = NPP_Write;
|
| - pFuncs->print = NPP_Print;
|
| - pFuncs->event = NPP_HandleEvent;
|
| - pFuncs->urlnotify = NPP_URLNotify;
|
| - pFuncs->getvalue = NPP_GetValue;
|
| - pFuncs->setvalue = NPP_SetValue;
|
| - pFuncs->javaClass = NULL;
|
| - pFuncs->urlredirectnotify = NPP_URLRedirectNotify;
|
| -
|
| - return NPERR_NO_ERROR;
|
| -}
|
| -
|
| -NPError PluginClient::Initialize(NPNetscapeFuncs* pFuncs) {
|
| - if (pFuncs == NULL) {
|
| - return NPERR_INVALID_FUNCTABLE_ERROR;
|
| - }
|
| -
|
| - if (static_cast<unsigned char>((pFuncs->version >> 8) & 0xff) >
|
| - NP_VERSION_MAJOR) {
|
| - return NPERR_INCOMPATIBLE_VERSION_ERROR;
|
| - }
|
| -
|
| -#if defined(OS_WIN)
|
| - // Check if we should crash.
|
| - HANDLE crash_event = CreateEvent(NULL, TRUE, FALSE, L"TestPluginCrashOnInit");
|
| - if (WaitForSingleObject(crash_event, 0) == WAIT_OBJECT_0) {
|
| - int *zero = NULL;
|
| - *zero = 0;
|
| - }
|
| - CloseHandle(crash_event);
|
| -#endif
|
| -
|
| - host_functions_ = pFuncs;
|
| -
|
| - return NPERR_NO_ERROR;
|
| -}
|
| -
|
| -NPError PluginClient::Shutdown() {
|
| - return NPERR_NO_ERROR;
|
| -}
|
| -
|
| -} // namespace NPAPIClient
|
| -
|
| -extern "C" {
|
| -NPError NPP_New(NPMIMEType pluginType, NPP instance, uint16 mode,
|
| - int16 argc, char* argn[], char* argv[], NPSavedData* saved) {
|
| - if (instance == NULL)
|
| - return NPERR_INVALID_INSTANCE_ERROR;
|
| -
|
| - // We look at the test name requested via the plugin arguments. We match
|
| - // that against a given test and try to instantiate it.
|
| -
|
| - // lookup the name parameter
|
| - std::string test_name;
|
| - for (int name_index = 0; name_index < argc; name_index++) {
|
| - if (base::strcasecmp(argn[name_index], "name") == 0) {
|
| - test_name = argv[name_index];
|
| - break;
|
| - }
|
| - }
|
| - if (test_name.empty())
|
| - return NPERR_GENERIC_ERROR; // no name found
|
| -
|
| - NPAPIClient::PluginTest* new_test = NPAPIClient::CreatePluginTest(test_name,
|
| - instance, NPAPIClient::PluginClient::HostFunctions());
|
| - if (new_test == NULL) {
|
| - // If we don't have a test case for this, create a
|
| - // generic one which basically never fails.
|
| - LOG(WARNING) << "Unknown test name '" << test_name
|
| - << "'; using default test.";
|
| - new_test = new NPAPIClient::PluginTest(instance,
|
| - NPAPIClient::PluginClient::HostFunctions());
|
| - }
|
| -
|
| - NPError ret = new_test->New(mode, argc, (const char**)argn,
|
| - (const char**)argv, saved);
|
| - if ((ret == NPERR_NO_ERROR) && new_test->IsWindowless()) {
|
| - NPAPIClient::PluginClient::HostFunctions()->setvalue(
|
| - instance, NPPVpluginWindowBool, NULL);
|
| - }
|
| -
|
| - return ret;
|
| -}
|
| -
|
| -NPError NPP_Destroy(NPP instance, NPSavedData** save) {
|
| - if (instance == NULL)
|
| - return NPERR_INVALID_INSTANCE_ERROR;
|
| -
|
| - NPAPIClient::PluginTest* plugin =
|
| - reinterpret_cast<NPAPIClient::PluginTest*>(instance->pdata);
|
| -
|
| - NPError rv = plugin->Destroy();
|
| - delete plugin;
|
| - return rv;
|
| -}
|
| -
|
| -NPError NPP_SetWindow(NPP instance, NPWindow* pNPWindow) {
|
| - if (instance == NULL)
|
| - return NPERR_INVALID_INSTANCE_ERROR;
|
| -
|
| - NPAPIClient::PluginTest* plugin =
|
| - reinterpret_cast<NPAPIClient::PluginTest*>(instance->pdata);
|
| -
|
| - return plugin->SetWindow(pNPWindow);
|
| -}
|
| -
|
| -NPError NPP_NewStream(NPP instance, NPMIMEType type,
|
| - NPStream* stream, NPBool seekable, uint16* stype) {
|
| - if (instance == NULL)
|
| - return NPERR_INVALID_INSTANCE_ERROR;
|
| -
|
| - NPAPIClient::PluginTest* plugin =
|
| - reinterpret_cast<NPAPIClient::PluginTest*>(instance->pdata);
|
| -
|
| - return plugin->NewStream(type, stream, seekable, stype);
|
| -}
|
| -
|
| -int32 NPP_WriteReady(NPP instance, NPStream *stream) {
|
| - if (instance == NULL)
|
| - return NPERR_INVALID_INSTANCE_ERROR;
|
| -
|
| - NPAPIClient::PluginTest* plugin =
|
| - reinterpret_cast<NPAPIClient::PluginTest*>(instance->pdata);
|
| -
|
| - return plugin->WriteReady(stream);
|
| -}
|
| -
|
| -int32 NPP_Write(NPP instance, NPStream *stream, int32 offset,
|
| - int32 len, void *buffer) {
|
| - if (instance == NULL)
|
| - return NPERR_INVALID_INSTANCE_ERROR;
|
| -
|
| - NPAPIClient::PluginTest* plugin =
|
| - reinterpret_cast<NPAPIClient::PluginTest*>(instance->pdata);
|
| -
|
| - return plugin->Write(stream, offset, len, buffer);
|
| -}
|
| -
|
| -NPError NPP_DestroyStream(NPP instance, NPStream *stream, NPError reason) {
|
| - if (instance == NULL)
|
| - return NPERR_INVALID_INSTANCE_ERROR;
|
| -
|
| - NPAPIClient::PluginTest* plugin =
|
| - reinterpret_cast<NPAPIClient::PluginTest*>(instance->pdata);
|
| -
|
| - return plugin->DestroyStream(stream, reason);
|
| -}
|
| -
|
| -void NPP_StreamAsFile(NPP instance, NPStream* stream, const char* fname) {
|
| - if (instance == NULL)
|
| - return;
|
| -
|
| - NPAPIClient::PluginTest* plugin =
|
| - reinterpret_cast<NPAPIClient::PluginTest*>(instance->pdata);
|
| -
|
| - return plugin->StreamAsFile(stream, fname);
|
| -}
|
| -
|
| -void NPP_Print(NPP instance, NPPrint* printInfo) {
|
| - if (instance == NULL)
|
| - return;
|
| -
|
| - // XXXMB - do work here.
|
| -}
|
| -
|
| -void NPP_URLNotify(NPP instance, const char* url, NPReason reason,
|
| - void* notifyData) {
|
| - if (instance == NULL)
|
| - return;
|
| -
|
| - NPAPIClient::PluginTest* plugin =
|
| - reinterpret_cast<NPAPIClient::PluginTest*>(instance->pdata);
|
| -
|
| - return plugin->URLNotify(url, reason, notifyData);
|
| -}
|
| -
|
| -NPError NPP_GetValue(NPP instance, NPPVariable variable, void *value) {
|
| - if (instance == NULL)
|
| - return NPERR_INVALID_INSTANCE_ERROR;
|
| -
|
| - // XXXMB - do work here.
|
| - return NPERR_GENERIC_ERROR;
|
| -}
|
| -
|
| -NPError NPP_SetValue(NPP instance, NPNVariable variable, void *value) {
|
| - if (instance == NULL)
|
| - return NPERR_INVALID_INSTANCE_ERROR;
|
| -
|
| - // XXXMB - do work here.
|
| - return NPERR_GENERIC_ERROR;
|
| -}
|
| -
|
| -int16 NPP_HandleEvent(NPP instance, void* event) {
|
| - if (instance == NULL)
|
| - return 0;
|
| -
|
| - NPAPIClient::PluginTest* plugin =
|
| - reinterpret_cast<NPAPIClient::PluginTest*>(instance->pdata);
|
| -
|
| - return plugin->HandleEvent(event);
|
| -}
|
| -
|
| -void NPP_URLRedirectNotify(NPP instance, const char* url, int32_t status,
|
| - void* notify_data) {
|
| - if (instance) {
|
| - NPAPIClient::PluginTest* plugin =
|
| - reinterpret_cast<NPAPIClient::PluginTest*>(instance->pdata);
|
| - plugin->URLRedirectNotify(url, status, notify_data);
|
| - }
|
| -}
|
| -} // extern "C"
|
|
|