#pragma once
#include "ChromeClient.h"
#include <wtf/UniqueRef.h>
namespace WebCore {
class DiagnosticLoggingClient;
class EditorClient;
class PageConfiguration;
class EmptyChromeClient : public ChromeClient {
WTF_MAKE_FAST_ALLOCATED;
void chromeDestroyed() override { }
void setWindowRect(const FloatRect&) final { }
FloatRect windowRect() final { return FloatRect(); }
FloatRect pageRect() final { return FloatRect(); }
void focus() final { }
void unfocus() final { }
bool canTakeFocus(FocusDirection) final { return false; }
void takeFocus(FocusDirection) final { }
void focusedElementChanged(Element*) final { }
void focusedFrameChanged(Frame*) final { }
Page* createWindow(Frame&, const FrameLoadRequest&, const WindowFeatures&, const NavigationAction&) final { return nullptr; }
void show() final { }
bool canRunModal() final { return false; }
void runModal() final { }
void setToolbarsVisible(bool) final { }
bool toolbarsVisible() final { return false; }
void setStatusbarVisible(bool) final { }
bool statusbarVisible() final { return false; }
void setScrollbarsVisible(bool) final { }
bool scrollbarsVisible() final { return false; }
void setMenubarVisible(bool) final { }
bool menubarVisible() final { return false; }
void setResizable(bool) final { }
void addMessageToConsole(MessageSource, MessageLevel, const String&, unsigned, unsigned, const String&) final { }
bool canRunBeforeUnloadConfirmPanel() final { return false; }
bool runBeforeUnloadConfirmPanel(const String&, Frame&) final { return true; }
void closeWindowSoon() final { }
void runJavaScriptAlert(Frame&, const String&) final { }
bool runJavaScriptConfirm(Frame&, const String&) final { return false; }
bool runJavaScriptPrompt(Frame&, const String&, const String&, String&) final { return false; }
bool selectItemWritingDirectionIsNatural() final { return false; }
bool selectItemAlignmentFollowsMenuWritingDirection() final { return false; }
bool hasOpenedPopup() const final { return false; }
RefPtr<PopupMenu> createPopupMenu(PopupMenuClient&) const final;
RefPtr<SearchPopupMenu> createSearchPopupMenu(PopupMenuClient&) const final;
void setStatusbarText(const String&) final { }
KeyboardUIMode keyboardUIMode() final { return KeyboardAccessDefault; }
void invalidateRootView(const IntRect&) final { }
void invalidateContentsAndRootView(const IntRect&) override { }
void invalidateContentsForSlowScroll(const IntRect&) final { }
void scroll(const IntSize&, const IntRect&, const IntRect&) final { }
#if USE(COORDINATED_GRAPHICS)
void delegatedScrollRequested(const IntPoint&) final { }
void resetUpdateAtlasForTesting() final { }
#endif
IntPoint screenToRootView(const IntPoint& p) const final { return p; }
IntRect rootViewToScreen(const IntRect& r) const final { return r; }
#if PLATFORM(IOS)
IntPoint accessibilityScreenToRootView(const IntPoint& p) const final { return p; };
IntRect rootViewToAccessibilityScreen(const IntRect& r) const final { return r; };
#endif
PlatformPageClient platformPageClient() const final { return 0; }
void contentsSizeChanged(Frame&, const IntSize&) const final { }
void scrollbarsModeDidChange() const final { }
void mouseDidMoveOverElement(const HitTestResult&, unsigned) final { }
void setToolTip(const String&, TextDirection) final { }
void print(Frame&) final { }
void exceededDatabaseQuota(Frame&, const String&, DatabaseDetails) final { }
void reachedMaxAppCacheSize(int64_t) final { }
void reachedApplicationCacheOriginQuota(SecurityOrigin&, int64_t) final { }
#if ENABLE(INPUT_TYPE_COLOR)
std::unique_ptr<ColorChooser> createColorChooser(ColorChooserClient&, const Color&) final;
#endif
void runOpenPanel(Frame&, FileChooser&) final;
void loadIconForFiles(const Vector<String>&, FileIconLoader&) final { }
void elementDidFocus(Element&) final { }
void elementDidBlur(Element&) final { }
#if !PLATFORM(IOS)
void setCursor(const Cursor&) final { }
void setCursorHiddenUntilMouseMoves(bool) final { }
#endif
void scrollRectIntoView(const IntRect&) const final { }
void attachRootGraphicsLayer(Frame&, GraphicsLayer*) final { }
void attachViewOverlayGraphicsLayer(Frame&, GraphicsLayer*) final { }
void setNeedsOneShotDrawingSynchronization() final { }
void scheduleCompositingLayerFlush() final { }
#if PLATFORM(WIN)
void setLastSetCursorToCurrentCursor() final { }
void AXStartFrameLoad() final { }
void AXFinishFrameLoad() final { }
#endif
#if ENABLE(IOS_TOUCH_EVENTS)
void didPreventDefaultForEvent() final { }
#endif
#if PLATFORM(IOS)
void didReceiveMobileDocType(bool) final { }
void setNeedsScrollNotifications(Frame&, bool) final { }
void observedContentChange(Frame&) final { }
void clearContentChangeObservers(Frame&) final { }
void notifyRevealedSelectionByScrollingFrame(Frame&) final { }
void didLayout(LayoutType) final { }
void didStartOverflowScroll() final { }
void didEndOverflowScroll() final { }
void suppressFormNotifications() final { }
void restoreFormNotifications() final { }
void addOrUpdateScrollingLayer(Node*, PlatformLayer*, PlatformLayer*, const IntSize&, bool, bool) final { }
void removeScrollingLayer(Node*, PlatformLayer*, PlatformLayer*) final { }
void webAppOrientationsUpdated() final { };
void showPlaybackTargetPicker(bool) final { };
#endif // PLATFORM(IOS)
#if ENABLE(ORIENTATION_EVENTS)
int deviceOrientation() const final { return 0; }
#endif
#if PLATFORM(IOS)
bool isStopping() final { return false; }
#endif
void wheelEventHandlersChanged(bool) final { }
bool isEmptyChromeClient() const final { return true; }
void didAssociateFormControls(const Vector<RefPtr<Element>>&) final { }
bool shouldNotifyOnFormChanges() final { return false; }
RefPtr<Icon> createIconForFiles(const Vector<String>& ) final { return nullptr; }
};
void fillWithEmptyClients(PageConfiguration&);
UniqueRef<EditorClient> createEmptyEditorClient();
DiagnosticLoggingClient& emptyDiagnosticLoggingClient();
}