| Index: webkit/glue/plugins/test/plugin_test.cc
|
| ===================================================================
|
| --- webkit/glue/plugins/test/plugin_test.cc (revision 69426)
|
| +++ webkit/glue/plugins/test/plugin_test.cc (working copy)
|
| @@ -1,155 +0,0 @@
|
| -// Copyright (c) 2006-2008 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_test.h"
|
| -
|
| -#include "base/string_util.h"
|
| -#include "webkit/glue/plugins/test/npapi_constants.h"
|
| -
|
| -namespace NPAPIClient {
|
| -
|
| -PluginTest::PluginTest(NPP id, NPNetscapeFuncs *host_functions) {
|
| - id_ = id;
|
| - id_->pdata = this;
|
| - host_functions_ = host_functions;
|
| - test_completed_ = false;
|
| -}
|
| -
|
| -NPError PluginTest::New(uint16 mode, int16 argc, const char* argn[],
|
| - const char* argv[], NPSavedData* saved) {
|
| - test_name_ = this->GetArgValue("name", argc, argn, argv);
|
| - test_id_ = this->GetArgValue("id", argc, argn, argv);
|
| - return NPERR_NO_ERROR;
|
| -}
|
| -
|
| -NPError PluginTest::Destroy() {
|
| - return NPERR_NO_ERROR;
|
| -}
|
| -
|
| -NPError PluginTest::SetWindow(NPWindow* pNPWindow) {
|
| - return NPERR_NO_ERROR;
|
| -}
|
| -
|
| -// It's a shame I have to implement URLEncode. But, using webkit's
|
| -// or using chrome's means a ball of string of dlls and dependencies that
|
| -// is very very long. After spending far too much time on it,
|
| -// I'll just encode it myself. Too bad Microsoft doesn't implement
|
| -// this in a reusable way either. Both webkit and chrome will
|
| -// end up using libicu, which is a string of dependencies we don't
|
| -// want.
|
| -
|
| -inline unsigned char toHex(const unsigned char x) {
|
| - return x > 9 ? (x + 'A' - 10) : (x + '0');
|
| -}
|
| -
|
| -std::string URLEncode(const std::string &sIn) {
|
| - std::string sOut;
|
| -
|
| - const size_t length = sIn.length();
|
| - for (size_t idx = 0; idx < length;) {
|
| - const char ch = sIn.at(idx);
|
| - if (isalnum(ch)) {
|
| - sOut.append(1, ch);
|
| - } else if (isspace(ch) && ((ch != '\n') && (ch != '\r'))) {
|
| - sOut.append(1, '+');
|
| - } else {
|
| - sOut.append(1, '%');
|
| - sOut.append(1, toHex(ch>>4));
|
| - sOut.append(1, toHex(ch%16));
|
| - }
|
| - idx++;
|
| - }
|
| - return sOut;
|
| -}
|
| -
|
| -void PluginTest::SignalTestCompleted() {
|
| - NPObject *window_obj = NULL;
|
| - host_functions_->getvalue(id_, NPNVWindowNPObject, &window_obj);
|
| - if (!window_obj)
|
| - return;
|
| -
|
| - test_completed_ = true;
|
| - // To signal test completion, we expect a couple of
|
| - // javascript functions to be defined in the webpage
|
| - // which hosts this plugin:
|
| - // onSuccess(test_name, test_id)
|
| - // onFailure(test_name, test_id, error_message)
|
| - std::string script("javascript:");
|
| - if (Succeeded()) {
|
| - script.append("onSuccess(\"");
|
| - script.append(test_name_);
|
| - script.append("\",\"");
|
| - script.append(test_id_);
|
| - script.append("\");");
|
| - } else {
|
| - script.append("onFailure(\"");
|
| - script.append(test_name_);
|
| - script.append("\",\"");
|
| - script.append(test_id_);
|
| - script.append("\",\"");
|
| - script.append(test_status_);
|
| - script.append("\");");
|
| - }
|
| -
|
| - NPString script_string;
|
| - script_string.UTF8Characters = script.c_str();
|
| - script_string.UTF8Length = static_cast<unsigned int>(script.length());
|
| -
|
| - NPVariant result_var;
|
| - host_functions_->evaluate(id_, window_obj, &script_string, &result_var);
|
| -}
|
| -
|
| -const char *PluginTest::GetArgValue(const char *name, const int16 argc,
|
| - const char *argn[], const char *argv[]) {
|
| - for (int idx = 0; idx < argc; idx++)
|
| - if (base::strcasecmp(argn[idx], name) == 0)
|
| - return argv[idx];
|
| - return NULL;
|
| -}
|
| -
|
| -void PluginTest::SetError(const std::string &msg) {
|
| - test_status_.append(msg);
|
| -}
|
| -
|
| -NPError PluginTest::NewStream(NPMIMEType type, NPStream* stream,
|
| - NPBool seekable, uint16* stype) {
|
| - // There is no default action here.
|
| - return NPERR_NO_ERROR;
|
| -}
|
| -
|
| -int32 PluginTest::WriteReady(NPStream *stream) {
|
| - // Take data in small chunks
|
| - return 4096;
|
| -}
|
| -
|
| -int32 PluginTest::Write(NPStream *stream, int32 offset, int32 len,
|
| - void *buffer) {
|
| - // Pretend that we took all the data.
|
| - return len;
|
| -}
|
| -
|
| -NPError PluginTest::DestroyStream(NPStream *stream, NPError reason) {
|
| - // There is no default action.
|
| - return NPERR_NO_ERROR;
|
| -}
|
| -
|
| -void PluginTest::StreamAsFile(NPStream* stream, const char* fname) {
|
| - // There is no default action.
|
| -}
|
| -
|
| -void PluginTest::URLNotify(const char* url, NPReason reason, void* data) {
|
| - // There is no default action
|
| -}
|
| -
|
| -int16 PluginTest::HandleEvent(void* event) {
|
| - // There is no default action
|
| - return 0;
|
| -}
|
| -
|
| -void PluginTest::URLRedirectNotify(const char* url, int32_t status,
|
| - void* notify_data) {
|
| - // There is no default action
|
| -}
|
| -
|
| -} // namespace NPAPIClient
|
|
|