blob: f1e3ad44c4d19251a08c79b6120567c762963288 [file] [log] [blame]
// Copyright 2015 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 EXTENSIONS_BROWSER_API_DISPLAY_SOURCE_DISPLAY_SOURCE_API_H_
#define EXTENSIONS_BROWSER_API_DISPLAY_SOURCE_DISPLAY_SOURCE_API_H_
#include "base/macros.h"
#include "extensions/browser/api/display_source/display_source_connection_delegate.h"
#include "extensions/browser/extension_function.h"
namespace extensions {
class DisplaySourceGetAvailableSinksFunction
: public UIThreadExtensionFunction {
public:
DECLARE_EXTENSION_FUNCTION("displaySource.getAvailableSinks",
DISPLAYSOURCE_GETAVAILABLESINKS);
DisplaySourceGetAvailableSinksFunction() = default;
protected:
~DisplaySourceGetAvailableSinksFunction() override;
ResponseAction Run() final;
private:
void OnGetSinksCompleted(const DisplaySourceSinkInfoList& sinks);
void OnGetSinksFailed(const std::string& reason);
DISALLOW_COPY_AND_ASSIGN(DisplaySourceGetAvailableSinksFunction);
};
class DisplaySourceRequestAuthenticationFunction
: public UIThreadExtensionFunction {
public:
DECLARE_EXTENSION_FUNCTION("displaySource.requestAuthentication",
DISPLAYSOURCE_REQUESTAUTHENTICATION);
DisplaySourceRequestAuthenticationFunction() = default;
protected:
~DisplaySourceRequestAuthenticationFunction() override;
ResponseAction Run() final;
private:
void OnRequestAuthCompleted(const DisplaySourceAuthInfo& auth_info);
void OnRequestAuthFailed(const std::string& reason);
DISALLOW_COPY_AND_ASSIGN(DisplaySourceRequestAuthenticationFunction);
};
} // namespace extensions
#endif // EXTENSIONS_BROWSER_API_DISPLAY_SOURCE_DISPLAY_SOURCE_API_H_