blob: 1d16f970de6edc5e1d762a64827bc1ec69fe0e91 [file] [log] [blame]
// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_EXTENSIONS_API_WEBRTC_LOGGING_PRIVATE_WEBRTC_LOGGING_PRIVATE_API_H_
#define CHROME_BROWSER_EXTENSIONS_API_WEBRTC_LOGGING_PRIVATE_WEBRTC_LOGGING_PRIVATE_API_H_
#include "chrome/browser/extensions/extension_function.h"
#include "chrome/common/extensions/api/webrtc_logging_private.h"
namespace extensions {
class WebrtcLoggingPrivateSetMetaDataFunction : public AsyncExtensionFunction {
public:
DECLARE_EXTENSION_FUNCTION("webrtcLoggingPrivate.setMetaData",
WEBRTCLOGGINGPRIVATE_SETMETADATA)
WebrtcLoggingPrivateSetMetaDataFunction();
private:
virtual ~WebrtcLoggingPrivateSetMetaDataFunction();
// ExtensionFunction overrides.
virtual bool RunImpl() OVERRIDE;
// Must be called on UI thread.
void SetMetaDataCallback(bool success);
};
class WebrtcLoggingPrivateStartFunction : public AsyncExtensionFunction {
public:
DECLARE_EXTENSION_FUNCTION("webrtcLoggingPrivate.start",
WEBRTCLOGGINGPRIVATE_START)
WebrtcLoggingPrivateStartFunction();
private:
virtual ~WebrtcLoggingPrivateStartFunction();
// ExtensionFunction overrides.
virtual bool RunImpl() OVERRIDE;
// Must be called on UI thread.
void StartCallback(bool success);
};
class WebrtcLoggingPrivateSetUploadOnRenderCloseFunction
: public AsyncExtensionFunction {
public:
DECLARE_EXTENSION_FUNCTION("webrtcLoggingPrivate.setUploadOnRenderClose",
WEBRTCLOGGINGPRIVATE_SETUPLOADONRENDERCLOSE)
WebrtcLoggingPrivateSetUploadOnRenderCloseFunction();
private:
virtual ~WebrtcLoggingPrivateSetUploadOnRenderCloseFunction();
// ExtensionFunction overrides.
virtual bool RunImpl() OVERRIDE;
};
class WebrtcLoggingPrivateStopFunction : public AsyncExtensionFunction {
public:
DECLARE_EXTENSION_FUNCTION("webrtcLoggingPrivate.stop",
WEBRTCLOGGINGPRIVATE_STOP)
WebrtcLoggingPrivateStopFunction();
private:
virtual ~WebrtcLoggingPrivateStopFunction();
// ExtensionFunction overrides.
virtual bool RunImpl() OVERRIDE;
// Must be called on UI thread.
void StopCallback(bool success);
};
class WebrtcLoggingPrivateUploadFunction : public AsyncExtensionFunction {
public:
DECLARE_EXTENSION_FUNCTION("webrtcLoggingPrivate.upload",
WEBRTCLOGGINGPRIVATE_UPLOAD)
WebrtcLoggingPrivateUploadFunction();
private:
virtual ~WebrtcLoggingPrivateUploadFunction();
// ExtensionFunction overrides.
virtual bool RunImpl() OVERRIDE;
// Must be called on UI thread.
void UploadCallback(bool success, std::string report_id);
};
class WebrtcLoggingPrivateDiscardFunction : public AsyncExtensionFunction {
public:
DECLARE_EXTENSION_FUNCTION("webrtcLoggingPrivate.discard",
WEBRTCLOGGINGPRIVATE_DISCARD)
WebrtcLoggingPrivateDiscardFunction();
private:
virtual ~WebrtcLoggingPrivateDiscardFunction();
// ExtensionFunction overrides.
virtual bool RunImpl() OVERRIDE;
// Must be called on UI thread.
void DiscardCallback(bool success);
};
} // namespace extensions
#endif // CHROME_BROWSER_EXTENSIONS_API_WEBRTC_LOGGING_PRIVATE_WEBRTC_LOGGING_PRIVATE_API_H_