OLD | NEW |
| (Empty) |
1 // Copyright (c) 2009 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/glue/plugins/test/plugin_private_test.h" | |
6 | |
7 #include "base/basictypes.h" | |
8 #include "base/string_util.h" | |
9 #include "webkit/glue/plugins/test/plugin_client.h" | |
10 | |
11 namespace NPAPIClient { | |
12 | |
13 PrivateTest::PrivateTest(NPP id, NPNetscapeFuncs *host_functions) | |
14 : PluginTest(id, host_functions) { | |
15 } | |
16 | |
17 NPError PrivateTest::New(uint16 mode, int16 argc, | |
18 const char* argn[], const char* argv[], | |
19 NPSavedData* saved) { | |
20 PluginTest::New(mode, argc, argn, argv, saved); | |
21 | |
22 NPBool private_mode = 0; | |
23 NPNetscapeFuncs* browser = NPAPIClient::PluginClient::HostFunctions(); | |
24 NPError result = browser->getvalue( | |
25 id(), NPNVprivateModeBool, &private_mode); | |
26 if (result != NPERR_NO_ERROR) { | |
27 SetError("Failed to read NPNVprivateModeBool value."); | |
28 } else { | |
29 NPIdentifier location = HostFunctions()->getstringidentifier("location"); | |
30 NPIdentifier href = HostFunctions()->getstringidentifier("href"); | |
31 | |
32 NPObject *window_obj = NULL; | |
33 HostFunctions()->getvalue(id(), NPNVWindowNPObject, &window_obj); | |
34 | |
35 NPVariant location_var; | |
36 HostFunctions()->getproperty(id(), window_obj, location, &location_var); | |
37 | |
38 NPVariant href_var; | |
39 HostFunctions()->getproperty(id(), NPVARIANT_TO_OBJECT(location_var), href, | |
40 &href_var); | |
41 std::string href_str(href_var.value.stringValue.UTF8Characters, | |
42 href_var.value.stringValue.UTF8Length); | |
43 bool private_expected = href_str.find("?private") != href_str.npos; | |
44 if (private_mode != static_cast<NPBool>(private_expected)) | |
45 SetError("NPNVprivateModeBool returned incorrect value."); | |
46 | |
47 HostFunctions()->releasevariantvalue(&href_var); | |
48 HostFunctions()->releasevariantvalue(&location_var); | |
49 HostFunctions()->releaseobject(window_obj); | |
50 } | |
51 | |
52 SignalTestCompleted(); | |
53 | |
54 return NPERR_NO_ERROR; | |
55 } | |
56 | |
57 } // namespace NPAPIClient | |
OLD | NEW |