blob: 5b16f7a7066f3a556db449b3d1452750a7e09c10 [file] [log] [blame]
// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_PERMISSIONS_CONTEXTS_CLIPBOARD_SANITIZED_WRITE_PERMISSION_CONTEXT_H_
#define COMPONENTS_PERMISSIONS_CONTEXTS_CLIPBOARD_SANITIZED_WRITE_PERMISSION_CONTEXT_H_
#include "components/permissions/content_setting_permission_context_base.h"
#include "components/permissions/contexts/clipboard_permission_context_delegate.h"
namespace permissions {
// Manages Clipboard API user permissions, for sanitized write only.
class ClipboardSanitizedWritePermissionContext
: public ContentSettingPermissionContextBase {
public:
explicit ClipboardSanitizedWritePermissionContext(
content::BrowserContext* browser_context,
std::unique_ptr<ClipboardPermissionContextDelegate> delegate);
~ClipboardSanitizedWritePermissionContext() override;
ClipboardSanitizedWritePermissionContext(
const ClipboardSanitizedWritePermissionContext&) = delete;
ClipboardSanitizedWritePermissionContext& operator=(
const ClipboardSanitizedWritePermissionContext&) = delete;
private:
// PermissionContextBase:
void DecidePermission(std::unique_ptr<PermissionRequestData> request_data,
BrowserPermissionCallback callback) override;
// ContentSettingPermissionContextBase:
ContentSetting GetContentSettingStatusInternal(
content::RenderFrameHost* render_frame_host,
const GURL& requesting_origin,
const GURL& embedding_origin) const override;
std::unique_ptr<ClipboardPermissionContextDelegate> delegate_;
};
} // namespace permissions
#endif // COMPONENTS_PERMISSIONS_CONTEXTS_CLIPBOARD_SANITIZED_WRITE_PERMISSION_CONTEXT_H_