diff options
Diffstat (limited to 'Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h')
-rw-r--r-- | Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h | 381 |
1 files changed, 221 insertions, 160 deletions
diff --git a/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h b/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h index 417268b12..a2d5e7cc4 100644 --- a/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h +++ b/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010, 2011, 2012 Apple Inc. All rights reserved. + * Copyright (C) 2010-2017 Apple Inc. All rights reserved. * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). * * Redistribution and use in source and binary forms, with or without @@ -24,199 +24,205 @@ * THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef WebChromeClient_h -#define WebChromeClient_h +#pragma once #include <WebCore/ChromeClient.h> -#include <WebCore/ViewportArguments.h> -#include <wtf/text/WTFString.h> namespace WebKit { class WebFrame; class WebPage; -class WebChromeClient : public WebCore::ChromeClient { +class WebChromeClient final : public WebCore::ChromeClient { public: - WebChromeClient(WebPage* page) - : m_cachedMainFrameHasHorizontalScrollbar(false) - , m_cachedMainFrameHasVerticalScrollbar(false) - , m_page(page) - { - } - - WebPage* page() const { return m_page; } + WebChromeClient(WebPage&); - virtual void* webView() const { return 0; } + WebPage& page() const { return m_page; } private: - virtual void chromeDestroyed() override; + ~WebChromeClient(); + + void chromeDestroyed() final; - virtual void setWindowRect(const WebCore::FloatRect&) override; - virtual WebCore::FloatRect windowRect() override; + void setWindowRect(const WebCore::FloatRect&) final; + WebCore::FloatRect windowRect() final; - virtual WebCore::FloatRect pageRect() override; + WebCore::FloatRect pageRect() final; - virtual void focus() override; - virtual void unfocus() override; + void focus() final; + void unfocus() final; - virtual bool canTakeFocus(WebCore::FocusDirection) override; - virtual void takeFocus(WebCore::FocusDirection) override; + bool canTakeFocus(WebCore::FocusDirection) final; + void takeFocus(WebCore::FocusDirection) final; - virtual void focusedElementChanged(WebCore::Element*) override; - virtual void focusedFrameChanged(WebCore::Frame*) override; + void focusedElementChanged(WebCore::Element*) final; + void focusedFrameChanged(WebCore::Frame*) final; // The Frame pointer provides the ChromeClient with context about which // Frame wants to create the new Page. Also, the newly created window // should not be shown to the user until the ChromeClient of the newly // created Page has its show method called. - virtual WebCore::Page* createWindow(WebCore::Frame*, const WebCore::FrameLoadRequest&, const WebCore::WindowFeatures&, const WebCore::NavigationAction&) override; - virtual void show() override; + WebCore::Page* createWindow(WebCore::Frame&, const WebCore::FrameLoadRequest&, const WebCore::WindowFeatures&, const WebCore::NavigationAction&) final; + void show() final; - virtual bool canRunModal() override; - virtual void runModal() override; + bool canRunModal() final; + void runModal() final; + + void reportProcessCPUTime(int64_t, WebCore::ActivityStateForCPUSampling) final; - virtual void setToolbarsVisible(bool) override; - virtual bool toolbarsVisible() override; + void setToolbarsVisible(bool) final; + bool toolbarsVisible() final; - virtual void setStatusbarVisible(bool) override; - virtual bool statusbarVisible() override; + void setStatusbarVisible(bool) final; + bool statusbarVisible() final; - virtual void setScrollbarsVisible(bool) override; - virtual bool scrollbarsVisible() override; + void setScrollbarsVisible(bool) final; + bool scrollbarsVisible() final; - virtual void setMenubarVisible(bool) override; - virtual bool menubarVisible() override; + void setMenubarVisible(bool) final; + bool menubarVisible() final; - virtual void setResizable(bool) override; + void setResizable(bool) final; - virtual void addMessageToConsole(WebCore::MessageSource, WebCore::MessageLevel, const String& message, unsigned lineNumber, unsigned columnNumber, const String& sourceID) override; + void addMessageToConsole(JSC::MessageSource, JSC::MessageLevel, const String& message, unsigned lineNumber, unsigned columnNumber, const String& sourceID) final; - virtual bool canRunBeforeUnloadConfirmPanel() override; - virtual bool runBeforeUnloadConfirmPanel(const String& message, WebCore::Frame*) override; + bool canRunBeforeUnloadConfirmPanel() final; + bool runBeforeUnloadConfirmPanel(const String& message, WebCore::Frame&) final; - virtual void closeWindowSoon() override; + void closeWindowSoon() final; - virtual void runJavaScriptAlert(WebCore::Frame*, const String&) override; - virtual bool runJavaScriptConfirm(WebCore::Frame*, const String&) override; - virtual bool runJavaScriptPrompt(WebCore::Frame*, const String& message, const String& defaultValue, String& result) override; - virtual void setStatusbarText(const String&) override; - virtual bool shouldInterruptJavaScript() override; + void runJavaScriptAlert(WebCore::Frame&, const String&) final; + bool runJavaScriptConfirm(WebCore::Frame&, const String&) final; + bool runJavaScriptPrompt(WebCore::Frame&, const String& message, const String& defaultValue, String& result) final; + void setStatusbarText(const String&) final; - virtual WebCore::KeyboardUIMode keyboardUIMode() override; + WebCore::KeyboardUIMode keyboardUIMode() final; - virtual WebCore::IntRect windowResizerRect() const override; - - // HostWindow member function overrides. - virtual void invalidateRootView(const WebCore::IntRect&, bool) override; - virtual void invalidateContentsAndRootView(const WebCore::IntRect&, bool) override; - virtual void invalidateContentsForSlowScroll(const WebCore::IntRect&, bool) override; - virtual void scroll(const WebCore::IntSize& scrollDelta, const WebCore::IntRect& scrollRect, const WebCore::IntRect& clipRect) override; -#if USE(TILED_BACKING_STORE) - virtual void delegatedScrollRequested(const WebCore::IntPoint& scrollOffset) override; + // HostWindow member function finals. + void invalidateRootView(const WebCore::IntRect&) final; + void invalidateContentsAndRootView(const WebCore::IntRect&) final; + void invalidateContentsForSlowScroll(const WebCore::IntRect&) final; + void scroll(const WebCore::IntSize& scrollDelta, const WebCore::IntRect& scrollRect, const WebCore::IntRect& clipRect) final; + +#if USE(COORDINATED_GRAPHICS) + void delegatedScrollRequested(const WebCore::IntPoint& scrollOffset) final; #endif - virtual WebCore::IntPoint screenToRootView(const WebCore::IntPoint&) const override; - virtual WebCore::IntRect rootViewToScreen(const WebCore::IntRect&) const override; - virtual PlatformPageClient platformPageClient() const override; - virtual void contentsSizeChanged(WebCore::Frame*, const WebCore::IntSize&) const override; - virtual void scrollRectIntoView(const WebCore::IntRect&) const override; // Currently only Mac has a non empty implementation. - virtual bool shouldUnavailablePluginMessageBeButton(WebCore::RenderEmbeddedObject::PluginUnavailabilityReason) const override; - virtual void unavailablePluginButtonClicked(WebCore::Element*, WebCore::RenderEmbeddedObject::PluginUnavailabilityReason) const override; + WebCore::IntPoint screenToRootView(const WebCore::IntPoint&) const final; + WebCore::IntRect rootViewToScreen(const WebCore::IntRect&) const final; - virtual void scrollbarsModeDidChange() const override; - virtual void mouseDidMoveOverElement(const WebCore::HitTestResult&, unsigned modifierFlags) override; - - virtual void setToolTip(const String&, WebCore::TextDirection) override; - - virtual void print(WebCore::Frame*) override; - -#if ENABLE(SQL_DATABASE) - virtual void exceededDatabaseQuota(WebCore::Frame*, const String& databaseName, WebCore::DatabaseDetails) override; +#if PLATFORM(IOS) + WebCore::IntPoint accessibilityScreenToRootView(const WebCore::IntPoint&) const final; + WebCore::IntRect rootViewToAccessibilityScreen(const WebCore::IntRect&) const final; #endif - virtual void reachedMaxAppCacheSize(int64_t spaceNeeded) override; - virtual void reachedApplicationCacheOriginQuota(WebCore::SecurityOrigin*, int64_t spaceNeeded) override; + PlatformPageClient platformPageClient() const final; + void contentsSizeChanged(WebCore::Frame&, const WebCore::IntSize&) const final; + void scrollRectIntoView(const WebCore::IntRect&) const final; // Currently only Mac has a non empty implementation. + + bool shouldUnavailablePluginMessageBeButton(WebCore::RenderEmbeddedObject::PluginUnavailabilityReason) const final; + void unavailablePluginButtonClicked(WebCore::Element&, WebCore::RenderEmbeddedObject::PluginUnavailabilityReason) const final; + + void scrollbarsModeDidChange() const final; + void mouseDidMoveOverElement(const WebCore::HitTestResult&, unsigned modifierFlags) final; + + void setToolTip(const String&, WebCore::TextDirection) final; + + void print(WebCore::Frame&) final; + + void exceededDatabaseQuota(WebCore::Frame&, const String& databaseName, WebCore::DatabaseDetails) final; + + void reachedMaxAppCacheSize(int64_t spaceNeeded) final; + void reachedApplicationCacheOriginQuota(WebCore::SecurityOrigin&, int64_t spaceNeeded) final; #if ENABLE(DASHBOARD_SUPPORT) - virtual void annotatedRegionsChanged() override; + void annotatedRegionsChanged() final; #endif - virtual void populateVisitedLinks() override; - - virtual WebCore::FloatRect customHighlightRect(WebCore::Node*, const WTF::AtomicString& type, const WebCore::FloatRect& lineRect) override; - virtual void paintCustomHighlight(WebCore::Node*, const AtomicString& type, const WebCore::FloatRect& boxRect, const WebCore::FloatRect& lineRect, - bool behindText, bool entireLine) override; - - virtual bool shouldReplaceWithGeneratedFileForUpload(const String& path, String& generatedFilename) override; - virtual String generateReplacementFile(const String& path) override; + bool shouldReplaceWithGeneratedFileForUpload(const String& path, String& generatedFilename) final; + String generateReplacementFile(const String& path) final; #if ENABLE(INPUT_TYPE_COLOR) - virtual PassOwnPtr<WebCore::ColorChooser> createColorChooser(WebCore::ColorChooserClient*, const WebCore::Color&) override; + std::unique_ptr<WebCore::ColorChooser> createColorChooser(WebCore::ColorChooserClient&, const WebCore::Color&) final; #endif #if ENABLE(IOS_TOUCH_EVENTS) - virtual void didPreventDefaultForEvent() override; + void didPreventDefaultForEvent() final; #endif #if PLATFORM(IOS) - virtual void didReceiveMobileDocType() override; - virtual void setNeedsScrollNotifications(WebCore::Frame*, bool) override; - virtual void observedContentChange(WebCore::Frame*) override; - virtual void clearContentChangeObservers(WebCore::Frame*) override; - virtual void notifyRevealedSelectionByScrollingFrame(WebCore::Frame*) override; - virtual bool isStopping() override; - - virtual void didLayout(LayoutType = NormalLayout) override; - virtual void didStartOverflowScroll() override; - virtual void didEndOverflowScroll() override; + void didReceiveMobileDocType(bool) final; + void setNeedsScrollNotifications(WebCore::Frame&, bool) final; + void observedContentChange(WebCore::Frame&) final; + void clearContentChangeObservers(WebCore::Frame&) final; + void notifyRevealedSelectionByScrollingFrame(WebCore::Frame&) final; + bool isStopping() final; + + void didLayout(LayoutType = NormalLayout) final; + void didStartOverflowScroll() final; + void didEndOverflowScroll() final; + bool hasStablePageScaleFactor() const final; // FIXME: See <rdar://problem/5975559> - virtual void suppressFormNotifications() override; - virtual void restoreFormNotifications() override; + void suppressFormNotifications() final; + void restoreFormNotifications() final; + + void addOrUpdateScrollingLayer(WebCore::Node*, PlatformLayer* scrollingLayer, PlatformLayer* contentsLayer, const WebCore::IntSize& scrollSize, bool allowHorizontalScrollbar, bool allowVerticalScrollbar) final; + void removeScrollingLayer(WebCore::Node*, PlatformLayer* scrollingLayer, PlatformLayer* contentsLayer) final; - virtual void addOrUpdateScrollingLayer(WebCore::Node*, PlatformLayer* scrollingLayer, PlatformLayer* contentsLayer, const WebCore::IntSize& scrollSize, bool allowHorizontalScrollbar, bool allowVerticalScrollbar) override; - virtual void removeScrollingLayer(WebCore::Node*, PlatformLayer* scrollingLayer, PlatformLayer* contentsLayer) override; + void webAppOrientationsUpdated() final; + void showPlaybackTargetPicker(bool hasVideo) final; - virtual void webAppOrientationsUpdated() override; + Seconds eventThrottlingDelay() final; #endif - virtual void runOpenPanel(WebCore::Frame*, PassRefPtr<WebCore::FileChooser>) override; - virtual void loadIconForFiles(const Vector<String>&, WebCore::FileIconLoader*) override; +#if ENABLE(ORIENTATION_EVENTS) + int deviceOrientation() const final; +#endif + + void runOpenPanel(WebCore::Frame&, WebCore::FileChooser&) final; + void loadIconForFiles(const Vector<String>&, WebCore::FileIconLoader&) final; #if !PLATFORM(IOS) - virtual void setCursor(const WebCore::Cursor&) override; - virtual void setCursorHiddenUntilMouseMoves(bool) override; + void setCursor(const WebCore::Cursor&) final; + void setCursorHiddenUntilMouseMoves(bool) final; #endif -#if ENABLE(REQUEST_ANIMATION_FRAME) && !USE(REQUEST_ANIMATION_FRAME_TIMER) - virtual void scheduleAnimation() override; + +#if !USE(REQUEST_ANIMATION_FRAME_TIMER) + void scheduleAnimation() final; +#endif + +#if ENABLE(POINTER_LOCK) + bool requestPointerLock() final; + void requestPointerUnlock() final; #endif - // Notification that the given form element has changed. This function - // will be called frequently, so handling should be very fast. - virtual void formStateDidChange(const WebCore::Node*) override; + void didAssociateFormControls(const Vector<RefPtr<WebCore::Element>>&) final; + bool shouldNotifyOnFormChanges() final; - virtual void didAssociateFormControls(const Vector<RefPtr<WebCore::Element>>&) override; - virtual bool shouldNotifyOnFormChanges() override; + bool selectItemWritingDirectionIsNatural() final; + bool selectItemAlignmentFollowsMenuWritingDirection() final; + bool hasOpenedPopup() const final; + RefPtr<WebCore::PopupMenu> createPopupMenu(WebCore::PopupMenuClient&) const final; + RefPtr<WebCore::SearchPopupMenu> createSearchPopupMenu(WebCore::PopupMenuClient&) const final; - virtual bool selectItemWritingDirectionIsNatural() override; - virtual bool selectItemAlignmentFollowsMenuWritingDirection() override; - virtual bool hasOpenedPopup() const override; - virtual PassRefPtr<WebCore::PopupMenu> createPopupMenu(WebCore::PopupMenuClient*) const override; - virtual PassRefPtr<WebCore::SearchPopupMenu> createSearchPopupMenu(WebCore::PopupMenuClient*) const override; + WebCore::GraphicsLayerFactory* graphicsLayerFactory() const final; + void attachRootGraphicsLayer(WebCore::Frame&, WebCore::GraphicsLayer*) final; + void attachViewOverlayGraphicsLayer(WebCore::Frame&, WebCore::GraphicsLayer*) final; + void setNeedsOneShotDrawingSynchronization() final; + void scheduleCompositingLayerFlush() final; + bool adjustLayerFlushThrottling(WebCore::LayerFlushThrottleState::Flags) final; -#if USE(ACCELERATED_COMPOSITING) - virtual WebCore::GraphicsLayerFactory* graphicsLayerFactory() const override; - virtual void attachRootGraphicsLayer(WebCore::Frame*, WebCore::GraphicsLayer*) override; - virtual void setNeedsOneShotDrawingSynchronization() override; - virtual void scheduleCompositingLayerFlush() override; +#if USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR) + RefPtr<WebCore::DisplayRefreshMonitor> createDisplayRefreshMonitor(WebCore::PlatformDisplayID) const final; +#endif - virtual CompositingTriggerFlags allowedCompositingTriggers() const + CompositingTriggerFlags allowedCompositingTriggers() const final { return static_cast<CompositingTriggerFlags>( ThreeDTransformTrigger | VideoTrigger | - PluginTrigger| + PluginTrigger| CanvasTrigger | #if PLATFORM(IOS) AnimatedOpacityTrigger | // Allow opacity animations to trigger compositing mode for iPhone: <rdar://problem/7830677> @@ -224,67 +230,122 @@ private: AnimationTrigger); } - virtual bool layerTreeStateIsFrozen() const override; -#endif + bool layerTreeStateIsFrozen() const final; #if ENABLE(ASYNC_SCROLLING) - virtual PassRefPtr<WebCore::ScrollingCoordinator> createScrollingCoordinator(WebCore::Page*) const override; + RefPtr<WebCore::ScrollingCoordinator> createScrollingCoordinator(WebCore::Page&) const final; #endif -#if ENABLE(TOUCH_EVENTS) - virtual void needTouchEvents(bool) override; +#if PLATFORM(IOS) + void elementDidRefocus(WebCore::Element&) final; #endif -#if PLATFORM(IOS) - virtual void elementDidFocus(const WebCore::Node*) override; - virtual void elementDidBlur(const WebCore::Node*) override; +#if (PLATFORM(IOS) && HAVE(AVKIT)) || (PLATFORM(MAC) && ENABLE(VIDEO_PRESENTATION_MODE)) + bool supportsVideoFullscreen(WebCore::HTMLMediaElementEnums::VideoFullscreenMode) final; + void setUpPlaybackControlsManager(WebCore::HTMLMediaElement&) final; + void clearPlaybackControlsManager() final; + void enterVideoFullscreenForVideoElement(WebCore::HTMLVideoElement&, WebCore::HTMLMediaElementEnums::VideoFullscreenMode) final; + void exitVideoFullscreenForVideoElement(WebCore::HTMLVideoElement&) final; +#endif + +#if PLATFORM(MAC) && ENABLE(VIDEO_PRESENTATION_MODE) + void exitVideoFullscreenToModeWithoutAnimation(WebCore::HTMLVideoElement&, WebCore::HTMLMediaElementEnums::VideoFullscreenMode) final; #endif #if ENABLE(FULLSCREEN_API) - virtual bool supportsFullScreenForElement(const WebCore::Element*, bool withKeyboard) override; - virtual void enterFullScreenForElement(WebCore::Element*) override; - virtual void exitFullScreenForElement(WebCore::Element*) override; + bool supportsFullScreenForElement(const WebCore::Element&, bool withKeyboard) final; + void enterFullScreenForElement(WebCore::Element&) final; + void exitFullScreenForElement(WebCore::Element*) final; #endif -#if PLATFORM(MAC) - virtual void makeFirstResponder() override; +#if PLATFORM(COCOA) + void elementDidFocus(WebCore::Element&) final; + void elementDidBlur(WebCore::Element&) final; + + void makeFirstResponder() final; #endif - virtual void enableSuddenTermination() override; - virtual void disableSuddenTermination() override; - - virtual void dispatchViewportPropertiesDidChange(const WebCore::ViewportArguments&) const override; + void enableSuddenTermination() final; + void disableSuddenTermination() final; + +#if PLATFORM(IOS) + WebCore::FloatSize screenSize() const final; + WebCore::FloatSize availableScreenSize() const final; +#endif + + void dispatchViewportPropertiesDidChange(const WebCore::ViewportArguments&) const final; + + void notifyScrollerThumbIsVisibleInRect(const WebCore::IntRect&) final; + void recommendedScrollbarStyleDidChange(WebCore::ScrollbarStyle newStyle) final; - virtual void notifyScrollerThumbIsVisibleInRect(const WebCore::IntRect&) override; - virtual void recommendedScrollbarStyleDidChange(int32_t newStyle) override; + std::optional<WebCore::ScrollbarOverlayStyle> preferredScrollbarOverlayStyle() final; - virtual WebCore::Color underlayColor() const override; + WebCore::Color underlayColor() const final; + + void pageExtendedBackgroundColorDidChange(WebCore::Color) const final; - virtual void numWheelEventHandlersChanged(unsigned) override; + void wheelEventHandlersChanged(bool) final; + + String plugInStartLabelTitle(const String& mimeType) const final; + String plugInStartLabelSubtitle(const String& mimeType) const final; + String plugInExtraStyleSheet() const final; + String plugInExtraScript() const final; + + void didAddHeaderLayer(WebCore::GraphicsLayer&) final; + void didAddFooterLayer(WebCore::GraphicsLayer&) final; - virtual void logDiagnosticMessage(const String& message, const String& description, const String& success) override; + bool shouldUseTiledBackingForFrameView(const WebCore::FrameView&) const final; - virtual String plugInStartLabelTitle(const String& mimeType) const override; - virtual String plugInStartLabelSubtitle(const String& mimeType) const override; - virtual String plugInExtraStyleSheet() const override; - virtual String plugInExtraScript() const override; + void isPlayingMediaDidChange(WebCore::MediaProducer::MediaStateFlags, uint64_t) final; + void didPlayMediaPreventedFromPlayingWithoutUserGesture() final; - virtual void didAddHeaderLayer(WebCore::GraphicsLayer*) override; - virtual void didAddFooterLayer(WebCore::GraphicsLayer*) override; +#if ENABLE(MEDIA_SESSION) + void hasMediaSessionWithActiveMediaElementsDidChange(bool) final; + void mediaSessionMetadataDidChange(const WebCore::MediaSessionMetadata&) final; + void focusedContentMediaElementDidChange(uint64_t) final; +#endif + +#if ENABLE(SUBTLE_CRYPTO) + bool wrapCryptoKey(const Vector<uint8_t>&, Vector<uint8_t>&) const final; + bool unwrapCryptoKey(const Vector<uint8_t>&, Vector<uint8_t>&) const final; +#endif + +#if ENABLE(TELEPHONE_NUMBER_DETECTION) && PLATFORM(MAC) + void handleTelephoneNumberClick(const String& number, const WebCore::IntPoint&) final; +#endif + +#if ENABLE(SERVICE_CONTROLS) + void handleSelectionServiceClick(WebCore::FrameSelection&, const Vector<String>& telephoneNumbers, const WebCore::IntPoint&) final; + bool hasRelevantSelectionServices(bool isTextOnly) const final; +#endif - virtual bool shouldUseTiledBackingForFrameView(const WebCore::FrameView*) const override; + bool shouldDispatchFakeMouseMoveEvents() const final; - virtual void incrementActivePageCount() override; - virtual void decrementActivePageCount() override; + void handleAutoFillButtonClick(WebCore::HTMLInputElement&) final; + +#if ENABLE(WIRELESS_PLAYBACK_TARGET) && !PLATFORM(IOS) + void addPlaybackTargetPickerClient(uint64_t /*contextId*/) final; + void removePlaybackTargetPickerClient(uint64_t /*contextId*/) final; + void showPlaybackTargetPicker(uint64_t contextId, const WebCore::IntPoint&, bool) final; + void playbackTargetPickerClientStateDidChange(uint64_t, WebCore::MediaProducer::MediaStateFlags) final; + void setMockMediaPlaybackTargetPickerEnabled(bool) final; + void setMockMediaPlaybackTargetPickerState(const String&, WebCore::MediaPlaybackTargetContext::State) final; +#endif + + void imageOrMediaDocumentSizeChanged(const WebCore::IntSize&) final; + +#if ENABLE(VIDEO) && USE(GSTREAMER) + void requestInstallMissingMediaPlugins(const String& /*details*/, const String& /*description*/, WebCore::MediaPlayerRequestInstallMissingPluginsCallback&) final; +#endif + + void didInvalidateDocumentMarkerRects() final; String m_cachedToolTip; mutable RefPtr<WebFrame> m_cachedFrameSetLargestFrame; - mutable bool m_cachedMainFrameHasHorizontalScrollbar; - mutable bool m_cachedMainFrameHasVerticalScrollbar; + mutable bool m_cachedMainFrameHasHorizontalScrollbar { false }; + mutable bool m_cachedMainFrameHasVerticalScrollbar { false }; - WebPage* m_page; + WebPage& m_page; }; } // namespace WebKit - -#endif // WebChromeClient_h |