| OLD | NEW |
| (Empty) |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include "webkit/plugins/npapi/test/plugin_execute_stream_javascript.h" | |
| 6 | |
| 7 #include "base/basictypes.h" | |
| 8 #include "webkit/plugins/npapi/test/plugin_client.h" | |
| 9 | |
| 10 namespace NPAPIClient { | |
| 11 | |
| 12 static const int kMaxLength = 4096; | |
| 13 | |
| 14 ExecuteStreamJavaScript::ExecuteStreamJavaScript( | |
| 15 NPP id, NPNetscapeFuncs *host_functions) | |
| 16 : PluginTest(id, host_functions) { | |
| 17 } | |
| 18 | |
| 19 NPError ExecuteStreamJavaScript::NewStream(NPMIMEType type, NPStream* stream, | |
| 20 NPBool seekable, uint16* stype) { | |
| 21 return NPERR_NO_ERROR; | |
| 22 } | |
| 23 | |
| 24 int32 ExecuteStreamJavaScript::WriteReady(NPStream *stream) { | |
| 25 return kMaxLength; | |
| 26 } | |
| 27 | |
| 28 int32 ExecuteStreamJavaScript::Write(NPStream *stream, int32 offset, int32 len, | |
| 29 void *buffer) { | |
| 30 if (stream == NULL) { | |
| 31 SetError("Write got null stream"); | |
| 32 return -1; | |
| 33 } | |
| 34 if (len < 0 || len > kMaxLength) { | |
| 35 SetError("Write got bogus stream chunk size"); | |
| 36 return -1; | |
| 37 } | |
| 38 | |
| 39 std::string javascript("javascript:"); | |
| 40 javascript.append(static_cast<char*>(buffer), len); | |
| 41 size_t js_length = javascript.length(); | |
| 42 if (js_length != static_cast<uint32_t>(js_length)) { | |
| 43 SetError("Javascript too long."); | |
| 44 return -1; | |
| 45 } | |
| 46 | |
| 47 NPString script_string = { javascript.c_str(), | |
| 48 static_cast<uint32_t>(js_length) }; | |
| 49 NPObject *window_obj = NULL; | |
| 50 NPAPIClient::PluginClient::HostFunctions()->getvalue( | |
| 51 id(), NPNVWindowNPObject, &window_obj); | |
| 52 | |
| 53 NPVariant unused_result; | |
| 54 NPAPIClient::PluginClient::HostFunctions()->evaluate( | |
| 55 id(), window_obj, &script_string, &unused_result); | |
| 56 | |
| 57 return len; | |
| 58 } | |
| 59 | |
| 60 NPError ExecuteStreamJavaScript::DestroyStream(NPStream *stream, | |
| 61 NPError reason) { | |
| 62 return NPERR_NO_ERROR; | |
| 63 } | |
| 64 | |
| 65 } // namespace NPAPIClient | |
| OLD | NEW |