15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2009 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch#ifndef CONTENT_TEST_PLUGIN_PLUGIN_CREATE_INSTANCE_IN_PAINT_H_
6ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch#define CONTENT_TEST_PLUGIN_PLUGIN_CREATE_INSTANCE_IN_PAINT_H_
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch#include "content/test/plugin/plugin_test.h"
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace NPAPIClient {
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// This class tests that creating a new plugin via script while handling a
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Windows message doesn't cause a deadlock.
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class CreateInstanceInPaintTest : public PluginTest {
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public:
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Constructor.
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  CreateInstanceInPaintTest(NPP id, NPNetscapeFuncs *host_functions);
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  //
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // NPAPI functions
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  //
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual NPError SetWindow(NPWindow* pNPWindow);
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private:
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  static LRESULT CALLBACK WindowProc(
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      HWND window, UINT message, WPARAM wparam, LPARAM lparam);
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  HWND window_;
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  bool created_;
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace NPAPIClient
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
33ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch#endif  // CONTENT_TEST_PLUGIN_PLUGIN_CREATE_INSTANCE_IN_PAINT_H_
34