#ifndef CHROME_BROWSER_UI_ANDROID_EXTENSIONS_EXTENSION_ACTION_POPUP_CONTENTS_H_
#define CHROME_BROWSER_UI_ANDROID_EXTENSIONS_EXTENSION_ACTION_POPUP_CONTENTS_H_
#include <memory>
#include "base/android/jni_android.h"
#include "chrome/browser/extensions/extension_view.h"
#include "content/public/browser/web_contents_observer.h"
namespace content {
class RenderFrameHost;
}
namespace extensions {
class ExtensionHost;
class ExtensionViewHost;
class ExtensionActionPopupContents : public content::WebContentsObserver,
public ExtensionView {
public:
explicit ExtensionActionPopupContents(
std::unique_ptr<ExtensionViewHost> popup_host);
ExtensionActionPopupContents(const ExtensionActionPopupContents&) = delete;
ExtensionActionPopupContents& operator=(const ExtensionActionPopupContents&) =
delete;
~ExtensionActionPopupContents() override;
base::android::ScopedJavaLocalRef<jobject> GetJavaObject();
void RenderFrameHostChanged(content::RenderFrameHost* old_host,
content::RenderFrameHost* new_host) override;
void ResizeDueToAutoResize(content::WebContents* web_contents,
const gfx::Size& new_size) override;
void RenderFrameCreated(content::RenderFrameHost* render_frame_host) override;
bool HandleKeyboardEvent(content::WebContents* source,
const input::NativeWebKeyboardEvent& event) override;
void OnLoaded() override;
void Destroy(JNIEnv* env);
void LoadInitialPage(JNIEnv* env);
private:
void SetUpNewMainFrame(content::RenderFrameHost* render_frame_host);
void HandleCloseExtensionHost(extensions::ExtensionHost* host);
std::unique_ptr<ExtensionViewHost> host_;
base::android::ScopedJavaGlobalRef<jobject> java_object_;
};
}
#endif