Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / content / test / plugin / plugin_thread_async_call_test.h
1 // Copyright (c) 2011 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 #ifndef CONTENT_TEST_PLUGIN_PLUGIN_THREAD_ASYNC_CALL_TEST_H_
6 #define CONTENT_TEST_PLUGIN_PLUGIN_THREAD_ASYNC_CALL_TEST_H_
7
8 #include "content/test/plugin/plugin_test.h"
9
10 namespace base {
11 class ShadowingAtExitManager;
12 }
13
14 namespace NPAPIClient {
15
16 // This class tests scheduling and unscheduling of async callbacks using
17 // NPN_PluginThreadAsyncCall.
18 class PluginThreadAsyncCallTest : public PluginTest {
19  public:
20   PluginThreadAsyncCallTest(NPP id, NPNetscapeFuncs *host_functions);
21   ~PluginThreadAsyncCallTest() override;
22
23   NPError New(uint16 mode,
24               int16 argc,
25               const char* argn[],
26               const char* argv[],
27               NPSavedData* saved) override;
28
29   NPError Destroy() override;
30
31   void AsyncCall();
32   void OnCallSucceeded();
33   void OnCallCompleted();
34
35  private:
36   // base::Thread needs one of these.
37   base::ShadowingAtExitManager* at_exit_manager_;
38
39   DISALLOW_COPY_AND_ASSIGN(PluginThreadAsyncCallTest);
40 };
41
42 }  // namespace NPAPIClient
43
44 #endif  // CONTENT_TEST_PLUGIN_PLUGIN_THREAD_ASYNC_CALL_TEST_H_