• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2013 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 CHROME_BROWSER_EXTENSIONS_API_WEBRTC_LOGGING_PRIVATE_WEBRTC_LOGGING_PRIVATE_API_H_
6 #define CHROME_BROWSER_EXTENSIONS_API_WEBRTC_LOGGING_PRIVATE_WEBRTC_LOGGING_PRIVATE_API_H_
7 
8 #include "chrome/browser/extensions/chrome_extension_function.h"
9 #include "chrome/common/extensions/api/webrtc_logging_private.h"
10 
11 namespace content {
12 
13 class RenderProcessHost;
14 
15 }
16 
17 namespace extensions {
18 
19 // TODO(grunell). Merge this with WebrtcAudioPrivateTabIdFunction.
20 class WebrtcLoggingPrivateTabIdFunction : public ChromeAsyncExtensionFunction {
21  protected:
~WebrtcLoggingPrivateTabIdFunction()22   virtual ~WebrtcLoggingPrivateTabIdFunction() {}
23 
24   content::RenderProcessHost* RphFromTabIdAndSecurityOrigin(
25       int tab_id, const std::string& security_origin);
26 };
27 
28 class WebrtcLoggingPrivateSetMetaDataFunction
29     : public WebrtcLoggingPrivateTabIdFunction {
30  public:
31   DECLARE_EXTENSION_FUNCTION("webrtcLoggingPrivate.setMetaData",
32                              WEBRTCLOGGINGPRIVATE_SETMETADATA)
33   WebrtcLoggingPrivateSetMetaDataFunction();
34 
35  private:
36   virtual ~WebrtcLoggingPrivateSetMetaDataFunction();
37 
38   // ExtensionFunction overrides.
39   virtual bool RunAsync() OVERRIDE;
40 
41   // Must be called on UI thread.
42   void SetMetaDataCallback(bool success, const std::string& error_message);
43 };
44 
45 class WebrtcLoggingPrivateStartFunction
46     : public WebrtcLoggingPrivateTabIdFunction {
47  public:
48   DECLARE_EXTENSION_FUNCTION("webrtcLoggingPrivate.start",
49                              WEBRTCLOGGINGPRIVATE_START)
50   WebrtcLoggingPrivateStartFunction();
51 
52  private:
53   virtual ~WebrtcLoggingPrivateStartFunction();
54 
55   // ExtensionFunction overrides.
56   virtual bool RunAsync() OVERRIDE;
57 
58   // Must be called on UI thread.
59   void StartCallback(bool success, const std::string& error_message);
60 };
61 
62 class WebrtcLoggingPrivateSetUploadOnRenderCloseFunction
63     : public WebrtcLoggingPrivateTabIdFunction {
64  public:
65   DECLARE_EXTENSION_FUNCTION("webrtcLoggingPrivate.setUploadOnRenderClose",
66                              WEBRTCLOGGINGPRIVATE_SETUPLOADONRENDERCLOSE)
67   WebrtcLoggingPrivateSetUploadOnRenderCloseFunction();
68 
69  private:
70   virtual ~WebrtcLoggingPrivateSetUploadOnRenderCloseFunction();
71 
72   // ExtensionFunction overrides.
73   virtual bool RunAsync() OVERRIDE;
74 };
75 
76 class WebrtcLoggingPrivateStopFunction
77     : public WebrtcLoggingPrivateTabIdFunction {
78  public:
79   DECLARE_EXTENSION_FUNCTION("webrtcLoggingPrivate.stop",
80                              WEBRTCLOGGINGPRIVATE_STOP)
81   WebrtcLoggingPrivateStopFunction();
82 
83  private:
84   virtual ~WebrtcLoggingPrivateStopFunction();
85 
86   // ExtensionFunction overrides.
87   virtual bool RunAsync() OVERRIDE;
88 
89   // Must be called on UI thread.
90   void StopCallback(bool success, const std::string& error_message);
91 };
92 
93 class WebrtcLoggingPrivateUploadFunction
94     : public WebrtcLoggingPrivateTabIdFunction {
95  public:
96   DECLARE_EXTENSION_FUNCTION("webrtcLoggingPrivate.upload",
97                              WEBRTCLOGGINGPRIVATE_UPLOAD)
98   WebrtcLoggingPrivateUploadFunction();
99 
100  private:
101   virtual ~WebrtcLoggingPrivateUploadFunction();
102 
103   // ExtensionFunction overrides.
104   virtual bool RunAsync() OVERRIDE;
105 
106   // Must be called on UI thread.
107   void UploadCallback(bool success, const std::string& report_id,
108                       const std::string& error_message);
109 };
110 
111 class WebrtcLoggingPrivateDiscardFunction
112     : public WebrtcLoggingPrivateTabIdFunction {
113  public:
114   DECLARE_EXTENSION_FUNCTION("webrtcLoggingPrivate.discard",
115                              WEBRTCLOGGINGPRIVATE_DISCARD)
116   WebrtcLoggingPrivateDiscardFunction();
117 
118  private:
119   virtual ~WebrtcLoggingPrivateDiscardFunction();
120 
121   // ExtensionFunction overrides.
122   virtual bool RunAsync() OVERRIDE;
123 
124   // Must be called on UI thread.
125   void DiscardCallback(bool success, const std::string& error_message);
126 };
127 
128 class WebrtcLoggingPrivateStartRtpDumpFunction
129     : public WebrtcLoggingPrivateTabIdFunction {
130  public:
131   DECLARE_EXTENSION_FUNCTION("webrtcLoggingPrivate.startRtpDump",
132                              WEBRTCLOGGINGPRIVATE_STARTRTPDUMP)
133   WebrtcLoggingPrivateStartRtpDumpFunction();
134 
135  private:
136   virtual ~WebrtcLoggingPrivateStartRtpDumpFunction();
137 
138   // ExtensionFunction overrides.
139   virtual bool RunAsync() OVERRIDE;
140 
141   // Must be called on UI thread.
142   void StartRtpDumpCallback(bool success, const std::string& error_message);
143 };
144 
145 class WebrtcLoggingPrivateStopRtpDumpFunction
146     : public WebrtcLoggingPrivateTabIdFunction {
147  public:
148   DECLARE_EXTENSION_FUNCTION("webrtcLoggingPrivate.stopRtpDump",
149                              WEBRTCLOGGINGPRIVATE_STOPRTPDUMP)
150   WebrtcLoggingPrivateStopRtpDumpFunction();
151 
152  private:
153   virtual ~WebrtcLoggingPrivateStopRtpDumpFunction();
154 
155   // ExtensionFunction overrides.
156   virtual bool RunAsync() OVERRIDE;
157 
158   // Must be called on UI thread.
159   void StopRtpDumpCallback(bool success, const std::string& error_message);
160 };
161 
162 }  // namespace extensions
163 
164 #endif  // CHROME_BROWSER_EXTENSIONS_API_WEBRTC_LOGGING_PRIVATE_WEBRTC_LOGGING_PRIVATE_API_H_
165