#ifndef WEBLAYER_BROWSER_FULLSCREEN_CALLBACK_PROXY_H_
#define WEBLAYER_BROWSER_FULLSCREEN_CALLBACK_PROXY_H_
#include <jni.h>
#include "base/android/scoped_java_ref.h"
#include "base/functional/callback.h"
#include "base/memory/raw_ptr.h"
#include "weblayer/public/fullscreen_delegate.h"
namespace weblayer {
class Tab;
class FullscreenCallbackProxy : public FullscreenDelegate {
public:
FullscreenCallbackProxy(JNIEnv* env, jobject obj, Tab* tab);
FullscreenCallbackProxy(const FullscreenCallbackProxy&) = delete;
FullscreenCallbackProxy& operator=(const FullscreenCallbackProxy&) = delete;
~FullscreenCallbackProxy() override;
void EnterFullscreen(base::OnceClosure exit_closure) override;
void ExitFullscreen() override;
void DoExitFullscreen(JNIEnv* env);
private:
raw_ptr<Tab> tab_;
base::android::ScopedJavaGlobalRef<jobject> java_delegate_;
base::OnceClosure exit_fullscreen_closure_;
};
}
#endif