Index: webkit/glue/plugins/test/plugin_get_javascript_url_test.cc |
=================================================================== |
--- webkit/glue/plugins/test/plugin_get_javascript_url_test.cc (revision 69426) |
+++ webkit/glue/plugins/test/plugin_get_javascript_url_test.cc (working copy) |
@@ -1,218 +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_get_javascript_url_test.h" |
- |
-#include "base/basictypes.h" |
- |
-// url for "self". |
-#define SELF_URL "javascript:window.location+\"\"" |
-// The identifier for the self url stream. |
-#define SELF_URL_STREAM_ID 1 |
- |
-// The identifier for the fetched url stream. |
-#define FETCHED_URL_STREAM_ID 2 |
- |
-// The maximum chunk size of stream data. |
-#define STREAM_CHUNK 197 |
- |
-const int kNPNEvaluateTimerID = 100; |
-const int kNPNEvaluateTimerElapse = 50; |
- |
- |
-namespace NPAPIClient { |
- |
-ExecuteGetJavascriptUrlTest::ExecuteGetJavascriptUrlTest( |
- NPP id, NPNetscapeFuncs *host_functions) |
- : PluginTest(id, host_functions), |
- test_started_(false), |
-#ifdef OS_WIN |
- window_(NULL), |
-#endif |
- npn_evaluate_context_(false) { |
-} |
- |
-NPError ExecuteGetJavascriptUrlTest::SetWindow(NPWindow* pNPWindow) { |
- if (pNPWindow->window == NULL) |
- return NPERR_NO_ERROR; |
- |
- if (!test_started_) { |
- std::string url = SELF_URL; |
- HostFunctions()->geturlnotify(id(), url.c_str(), "_top", |
- reinterpret_cast<void*>(SELF_URL_STREAM_ID)); |
- test_started_ = true; |
- |
-#ifdef OS_WIN |
- HWND window_handle = reinterpret_cast<HWND>(pNPWindow->window); |
- if (!::GetProp(window_handle, L"Plugin_Instance")) { |
- // TODO: this propery leaks. |
- ::SetProp(window_handle, L"Plugin_Instance", this); |
- // We attempt to retreive the NPObject for the plugin instance identified |
- // by the NPObjectLifetimeTestInstance2 class as it may not have been |
- // instantiated yet. |
- SetTimer(window_handle, kNPNEvaluateTimerID, kNPNEvaluateTimerElapse, |
- TimerProc); |
- } |
- window_ = window_handle; |
-#endif |
- } |
- |
- return NPERR_NO_ERROR; |
-} |
- |
-#ifdef OS_WIN |
-void CALLBACK ExecuteGetJavascriptUrlTest::TimerProc( |
- HWND window, UINT message, UINT timer_id, unsigned long elapsed_time) { |
- ExecuteGetJavascriptUrlTest* this_instance = |
- reinterpret_cast<ExecuteGetJavascriptUrlTest*> |
- (::GetProp(window, L"Plugin_Instance")); |
- |
- ::RemoveProp(window, L"Plugin_Instance"); |
- |
- NPObject *window_obj = NULL; |
- this_instance->HostFunctions()->getvalue(this_instance->id(), |
- NPNVWindowNPObject, |
- &window_obj); |
- if (!window_obj) { |
- this_instance->SetError("Failed to get NPObject for plugin instance2"); |
- this_instance->SignalTestCompleted(); |
- return; |
- } |
- |
- std::string script = "javascript:window.location"; |
- NPString script_string; |
- script_string.UTF8Characters = script.c_str(); |
- script_string.UTF8Length = static_cast<unsigned int>(script.length()); |
- NPVariant result_var; |
- |
- this_instance->npn_evaluate_context_ = true; |
- NPError result = this_instance->HostFunctions()->evaluate( |
- this_instance->id(), window_obj, &script_string, &result_var); |
- this_instance->npn_evaluate_context_ = false; |
-} |
-#endif |
- |
-NPError ExecuteGetJavascriptUrlTest::NewStream(NPMIMEType type, |
- NPStream* stream, |
- NPBool seekable, |
- uint16* stype) { |
- if (stream == NULL) { |
- SetError("NewStream got null stream"); |
- return NPERR_INVALID_PARAM; |
- } |
- |
- if (npn_evaluate_context_) { |
- SetError("NewStream received in context of NPN_Evaluate"); |
- return NPERR_NO_ERROR; |
- } |
- |
- COMPILE_ASSERT(sizeof(unsigned long) <= sizeof(stream->notifyData), |
- cast_validity_check); |
- unsigned long stream_id = reinterpret_cast<unsigned long>(stream->notifyData); |
- switch (stream_id) { |
- case SELF_URL_STREAM_ID: |
- break; |
- default: |
- SetError("Unexpected NewStream callback"); |
- break; |
- } |
- return NPERR_NO_ERROR; |
-} |
- |
-int32 ExecuteGetJavascriptUrlTest::WriteReady(NPStream *stream) { |
- if (npn_evaluate_context_) { |
- SetError("WriteReady received in context of NPN_Evaluate"); |
- return NPERR_NO_ERROR; |
- } |
- return STREAM_CHUNK; |
-} |
- |
-int32 ExecuteGetJavascriptUrlTest::Write(NPStream *stream, int32 offset, |
- int32 len, void *buffer) { |
- if (stream == NULL) { |
- SetError("Write got null stream"); |
- return -1; |
- } |
- if (len < 0 || len > STREAM_CHUNK) { |
- SetError("Write got bogus stream chunk size"); |
- return -1; |
- } |
- |
- if (npn_evaluate_context_) { |
- SetError("Write received in context of NPN_Evaluate"); |
- return len; |
- } |
- |
- COMPILE_ASSERT(sizeof(unsigned long) <= sizeof(stream->notifyData), |
- cast_validity_check); |
- unsigned long stream_id = reinterpret_cast<unsigned long>(stream->notifyData); |
- switch (stream_id) { |
- case SELF_URL_STREAM_ID: |
- self_url_.append(static_cast<char*>(buffer), len); |
- break; |
- default: |
- SetError("Unexpected write callback"); |
- break; |
- } |
- // Pretend that we took all the data. |
- return len; |
-} |
- |
- |
-NPError ExecuteGetJavascriptUrlTest::DestroyStream(NPStream *stream, |
- NPError reason) { |
- if (stream == NULL) { |
- SetError("NewStream got null stream"); |
- return NPERR_INVALID_PARAM; |
- } |
- |
-#ifdef OS_WIN |
- KillTimer(window_, kNPNEvaluateTimerID); |
-#endif |
- |
- if (npn_evaluate_context_) { |
- SetError("DestroyStream received in context of NPN_Evaluate"); |
- return NPERR_NO_ERROR; |
- } |
- |
- COMPILE_ASSERT(sizeof(unsigned long) <= sizeof(stream->notifyData), |
- cast_validity_check); |
- unsigned long stream_id = reinterpret_cast<unsigned long>(stream->notifyData); |
- switch (stream_id) { |
- case SELF_URL_STREAM_ID: |
- // don't care |
- break; |
- default: |
- SetError("Unexpected NewStream callback"); |
- break; |
- } |
- return NPERR_NO_ERROR; |
-} |
- |
-void ExecuteGetJavascriptUrlTest::URLNotify(const char* url, NPReason reason, |
- void* data) { |
- COMPILE_ASSERT(sizeof(unsigned long) <= sizeof(data), |
- cast_validity_check); |
- |
- if (npn_evaluate_context_) { |
- SetError("URLNotify received in context of NPN_Evaluate"); |
- return; |
- } |
- |
- unsigned long stream_id = reinterpret_cast<unsigned long>(data); |
- switch (stream_id) { |
- case SELF_URL_STREAM_ID: |
- if (strcmp(url, SELF_URL) != 0) |
- SetError("URLNotify reported incorrect url for SELF_URL"); |
- if (self_url_.empty()) |
- SetError("Failed to obtain window location."); |
- SignalTestCompleted(); |
- break; |
- default: |
- SetError("Unexpected NewStream callback"); |
- break; |
- } |
-} |
- |
-} // namespace NPAPIClient |