blob: fd66a151ca06babe21432c9d32e38d29ea175fae [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 EXTENSIONS_RENDERER_BINDINGS_TEST_INTERACTION_PROVIDER_H_
#define EXTENSIONS_RENDERER_BINDINGS_TEST_INTERACTION_PROVIDER_H_
#include "extensions/renderer/bindings/interaction_provider.h"
#include "v8/include/v8.h"
namespace extensions {
class TestInteractionProvider : public InteractionProvider {
public:
TestInteractionProvider();
TestInteractionProvider(const TestInteractionProvider&) = delete;
TestInteractionProvider& operator=(const TestInteractionProvider&) = delete;
~TestInteractionProvider() override;
// InteractionProvider:
std::unique_ptr<InteractionProvider::Token> GetCurrentToken(
v8::Local<v8::Context> v8_context) const override;
std::unique_ptr<InteractionProvider::Scope> CreateScopedInteraction(
v8::Local<v8::Context> v8_context,
std::unique_ptr<InteractionProvider::Token> token) const override;
bool HasActiveInteraction(v8::Local<v8::Context> v8_context) const override;
};
// User activation mock for test: sets transient activation state on
// construction, resets on destruction.
class ScopedTestUserActivation {
public:
ScopedTestUserActivation();
~ScopedTestUserActivation();
};
} // namespace extensions
#endif // EXTENSIONS_RENDERER_BINDINGS_TEST_INTERACTION_PROVIDER_H_