| Index: webkit/glue/plugins/test/plugin_window_size_test.cc
|
| ===================================================================
|
| --- webkit/glue/plugins/test/plugin_window_size_test.cc (revision 12476)
|
| +++ webkit/glue/plugins/test/plugin_window_size_test.cc (working copy)
|
| @@ -13,8 +13,8 @@
|
| }
|
|
|
| NPError PluginWindowSizeTest::SetWindow(NPWindow* pNPWindow) {
|
| - if (!pNPWindow ||
|
| - !::IsWindow(reinterpret_cast<HWND>(pNPWindow->window))) {
|
| + HWND window = reinterpret_cast<HWND>(pNPWindow->window);
|
| + if (!pNPWindow || !::IsWindow(window)) {
|
| SetError("Invalid arguments passed in");
|
| return NPERR_INVALID_PARAM;
|
| }
|
| @@ -27,12 +27,22 @@
|
|
|
| if (!::IsRectEmpty(&window_rect)) {
|
| RECT client_rect = {0};
|
| - ::GetClientRect(reinterpret_cast<HWND>(pNPWindow->window),
|
| - &client_rect);
|
| + ::GetClientRect(window, &client_rect);
|
| if (::IsRectEmpty(&client_rect)) {
|
| SetError("The client rect of the plugin window is empty. Test failed");
|
| }
|
|
|
| + // Bug 6742: ensure that the coordinates passed in are relative to the
|
| + // parent HWND.
|
| + POINT origin_from_os;
|
| + RECT window_rect_from_os;
|
| + ::GetWindowRect(window, &window_rect_from_os);
|
| + origin_from_os.x = window_rect_from_os.left;
|
| + origin_from_os.y = window_rect_from_os.top;
|
| + ::ScreenToClient(GetParent(window), &origin_from_os);
|
| + if (origin_from_os.x != pNPWindow->x || origin_from_os.y != pNPWindow->y)
|
| + SetError("Wrong position passed in to SetWindow! Test failed");
|
| +
|
| SignalTestCompleted();
|
| }
|
|
|
|
|