Changeset 226008 in webkit


Ignore:
Timestamp:
Dec 16, 2017 12:57:11 PM (6 years ago)
Author:
mitz@apple.com
Message:

WKWebView has no equivalent of -[WebView setAlwaysShowVerticalScroller:]
https://bugs.webkit.org/show_bug.cgi?id=180613
<rdar://problem/35946124>

Reviewed by Geoff Garen.

Source/WebCore:

Test: TestWebKitAPI/Tests/WebKitCocoa/WKWebViewAlwaysShowsScroller.mm

  • platform/ScrollView.h: Exported setScrollbarModes.

Source/WebKit:

Added _alwaysShowsHorizontalScroller and _alwaysShowsVerticalScroller properties to
WKWebView.

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const): Encode new alwaysShowsHorizontalScroller

and alwaysShowsVerticalScroller parameters.

(WebKit::WebPageCreationParameters::decode): Decode new parameters.

  • Shared/WebPageCreationParameters.h: Added new alwaysShowsHorizontalScroller and alwaysShowsVerticalScroller boolean parameters.
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _alwaysShowsHorizontalScroller]): New accessor that calls through to the

WebPageProxy.

(-[WKWebView _setAlwaysShowsHorizontalScroller:]): Ditto.
(-[WKWebView _alwaysShowsVerticalScroller]): Ditto.
(-[WKWebView _setAlwaysShowsVerticalScroller:]): Ditto.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h: Declare new properties.
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setAlwaysShowsHorizontalScroller): Update member variable and send

a message to the page.

(WebKit::WebPageProxy::setAlwaysShowsVerticalScroller): Ditto.
(WebKit::WebPageProxy::creationParameters): Initialize new parameters from the new member

variables.

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::alwaysShowsHorizontalScroller const): New getter.
(WebKit::WebPageProxy::alwaysShowsVerticalScroller const): Ditto.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage): Factor

alwaysShowsHorizontalScroller and alwaysShowsVerticalScroller into the initial scroller
modes and scroller locks when creating the FrameView.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage): Initialize new m_alwaysShowsHorizontalScroller and

m_alwaysShowsVerticalScroller member variables from the corresponding new creation
parameters.

(WebKit::WebPage::setAlwaysShowsHorizontalScroller): Update the member variable and set

new scrollbar mode on the frame view if needed.

(WebKit::WebPage::setAlwaysShowsVerticalScroller): Ditto.

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::alwaysShowsHorizontalScroller const): New getter.
(WebKit::WebPage::alwaysShowsVerticalScroller const): Ditto.

  • WebProcess/WebPage/WebPage.messages.in: Added new messages.

Source/WebKitLegacy/mac:

  • WebKit.mac.exp: Removed WebCoreScrollbarAlwaysOn, which is no longer being used by any clients.
  • WebView/WebDynamicScrollBarsView.h: Ditto.
  • WebView/WebDynamicScrollBarsView.mm: Ditto.

Tools:

  • MiniBrowser/mac/MainMenu.xib: Added Always Show {Horizontal,Vertical} Scroller menu items to the View menu.
  • MiniBrowser/mac/WK1BrowserWindowController.m:

(-[WK1BrowserWindowController validateMenuItem:]): Set the state of the new menu items based

on -alwaysShow{Horizontal,Vertical}Scroller.

(-[WK1BrowserWindowController toggleAlwaysShowsHorizontalScroller:]): Toggle the value.
(-[WK1BrowserWindowController toggleAlwaysShowsVerticalScroller:]): Ditto.

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController validateMenuItem:]): Set the state of the new menu items based

on the new property.

(-[WK2BrowserWindowController toggleAlwaysShowsHorizontalScroller:]): Toggle the property.
(-[WK2BrowserWindowController toggleAlwaysShowsVerticalScroller:]): Ditto.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewAlwaysShowsScroller.mm: Added.

(TEST):

Location:
trunk
Files:
1 added
22 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r226007 r226008  
     12017-12-16  Dan Bernstein  <mitz@apple.com>
     2
     3        WKWebView has no equivalent of -[WebView setAlwaysShowVerticalScroller:]
     4        https://bugs.webkit.org/show_bug.cgi?id=180613
     5        <rdar://problem/35946124>
     6
     7        Reviewed by Geoff Garen.
     8
     9        Test: TestWebKitAPI/Tests/WebKitCocoa/WKWebViewAlwaysShowsScroller.mm
     10
     11        * platform/ScrollView.h: Exported setScrollbarModes.
     12
    1132017-12-16  Antti Koivisto  <antti@apple.com>
    214
  • trunk/Source/WebCore/platform/ScrollView.h

    r220781 r226008  
    104104    // Note that for platforms with native widgets, these modes are considered advisory. In other words the underlying native
    105105    // widget may choose not to honor the requested modes.
    106     void setScrollbarModes(ScrollbarMode horizontalMode, ScrollbarMode verticalMode, bool horizontalLock = false, bool verticalLock = false);
     106    WEBCORE_EXPORT void setScrollbarModes(ScrollbarMode horizontalMode, ScrollbarMode verticalMode, bool horizontalLock = false, bool verticalLock = false);
    107107    void setHorizontalScrollbarMode(ScrollbarMode mode, bool lock = false) { setScrollbarModes(mode, verticalScrollbarMode(), lock, verticalScrollbarLock()); }
    108108    void setVerticalScrollbarMode(ScrollbarMode mode, bool lock = false) { setScrollbarModes(horizontalScrollbarMode(), mode, horizontalScrollbarLock(), lock); };
  • trunk/Source/WebKit/ChangeLog

    r226003 r226008  
     12017-12-16  Dan Bernstein  <mitz@apple.com>
     2
     3        WKWebView has no equivalent of -[WebView setAlwaysShowVerticalScroller:]
     4        https://bugs.webkit.org/show_bug.cgi?id=180613
     5        <rdar://problem/35946124>
     6
     7        Reviewed by Geoff Garen.
     8
     9        Added _alwaysShowsHorizontalScroller and _alwaysShowsVerticalScroller properties to
     10        WKWebView.
     11
     12        * Shared/WebPageCreationParameters.cpp:
     13        (WebKit::WebPageCreationParameters::encode const): Encode new alwaysShowsHorizontalScroller
     14          and alwaysShowsVerticalScroller parameters.
     15        (WebKit::WebPageCreationParameters::decode): Decode new parameters.
     16
     17        * Shared/WebPageCreationParameters.h: Added new alwaysShowsHorizontalScroller and
     18          alwaysShowsVerticalScroller boolean parameters.
     19
     20        * UIProcess/API/Cocoa/WKWebView.mm:
     21        (-[WKWebView _alwaysShowsHorizontalScroller]): New accessor that calls through to the
     22          WebPageProxy.
     23        (-[WKWebView _setAlwaysShowsHorizontalScroller:]): Ditto.
     24        (-[WKWebView _alwaysShowsVerticalScroller]): Ditto.
     25        (-[WKWebView _setAlwaysShowsVerticalScroller:]): Ditto.
     26
     27        * UIProcess/API/Cocoa/WKWebViewPrivate.h: Declare new properties.
     28
     29        * UIProcess/WebPageProxy.cpp:
     30        (WebKit::WebPageProxy::setAlwaysShowsHorizontalScroller): Update member variable and send
     31          a message to the page.
     32        (WebKit::WebPageProxy::setAlwaysShowsVerticalScroller): Ditto.
     33        (WebKit::WebPageProxy::creationParameters): Initialize new parameters from the new member
     34          variables.
     35
     36        * UIProcess/WebPageProxy.h:
     37        (WebKit::WebPageProxy::alwaysShowsHorizontalScroller const): New getter.
     38        (WebKit::WebPageProxy::alwaysShowsVerticalScroller const): Ditto.
     39
     40        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
     41        (WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage): Factor
     42          alwaysShowsHorizontalScroller and alwaysShowsVerticalScroller into the initial scroller
     43          modes and scroller locks when creating the FrameView.
     44
     45        * WebProcess/WebPage/WebPage.cpp:
     46        (WebKit::WebPage::WebPage): Initialize new m_alwaysShowsHorizontalScroller and
     47          m_alwaysShowsVerticalScroller member variables from the corresponding new creation
     48          parameters.
     49        (WebKit::WebPage::setAlwaysShowsHorizontalScroller): Update the member variable and set
     50          new scrollbar mode on the frame view if needed.
     51        (WebKit::WebPage::setAlwaysShowsVerticalScroller): Ditto.
     52
     53        * WebProcess/WebPage/WebPage.h:
     54        (WebKit::WebPage::alwaysShowsHorizontalScroller const): New getter.
     55        (WebKit::WebPage::alwaysShowsVerticalScroller const): Ditto.
     56
     57        * WebProcess/WebPage/WebPage.messages.in: Added new messages.
     58
    1592017-12-16  Brady Eidson  <beidson@apple.com>
    260
  • trunk/Source/WebKit/Shared/WebPageCreationParameters.cpp

    r225615 r226008  
    4444    encoder << useFixedLayout;
    4545    encoder << fixedLayoutSize;
     46    encoder << alwaysShowsHorizontalScroller;
     47    encoder << alwaysShowsVerticalScroller;
    4648    encoder.encodeEnum(paginationMode);
    4749    encoder << paginationBehavesLikeColumns;
     
    137139    if (!decoder.decode(parameters.fixedLayoutSize))
    138140        return std::nullopt;
     141    if (!decoder.decode(parameters.alwaysShowsHorizontalScroller))
     142        return std::nullopt;
     143    if (!decoder.decode(parameters.alwaysShowsVerticalScroller))
     144        return std::nullopt;
    139145    if (!decoder.decodeEnum(parameters.paginationMode))
    140146        return std::nullopt;
  • trunk/Source/WebKit/Shared/WebPageCreationParameters.h

    r225615 r226008  
    8181    bool useFixedLayout;
    8282    WebCore::IntSize fixedLayoutSize;
     83
     84    bool alwaysShowsHorizontalScroller;
     85    bool alwaysShowsVerticalScroller;
    8386
    8487    bool suppressScrollbarAnimations;
  • trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm

    r225989 r226008  
    55195519}
    55205520
     5521- (BOOL)_alwaysShowsHorizontalScroller
     5522{
     5523    return _page->alwaysShowsHorizontalScroller();
     5524}
     5525
     5526- (void)_setAlwaysShowsHorizontalScroller:(BOOL)alwaysShowsHorizontalScroller
     5527{
     5528    _page->setAlwaysShowsHorizontalScroller(alwaysShowsHorizontalScroller);
     5529}
     5530
     5531- (BOOL)_alwaysShowsVerticalScroller
     5532{
     5533    return _page->alwaysShowsVerticalScroller();
     5534}
     5535
     5536- (void)_setAlwaysShowsVerticalScroller:(BOOL)alwaysShowsVerticalScroller
     5537{
     5538    _page->setAlwaysShowsVerticalScroller(alwaysShowsVerticalScroller);
     5539}
     5540
    55215541- (NSPrintOperation *)_printOperationWithPrintInfo:(NSPrintInfo *)printInfo
    55225542{
  • trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h

    r225598 r226008  
    280280// of the content; use this property to force it to lay out to the height of the view instead.
    281281@property (nonatomic, setter=_setShouldExpandContentToViewHeightForAutoLayout:) BOOL _shouldExpandContentToViewHeightForAutoLayout WK_API_AVAILABLE(macosx(10.12));
     282
     283@property (nonatomic, setter=_setAlwaysShowsHorizontalScroller:) BOOL _alwaysShowsHorizontalScroller WK_API_AVAILABLE(macosx(WK_MAC_TBA));
     284@property (nonatomic, setter=_setAlwaysShowsVerticalScroller:) BOOL _alwaysShowsVerticalScroller WK_API_AVAILABLE(macosx(WK_MAC_TBA));
    282285
    283286- (NSPrintOperation *)_printOperationWithPrintInfo:(NSPrintInfo *)printInfo;
  • trunk/Source/WebKit/UIProcess/WebPageProxy.cpp

    r225954 r226008  
    26532653}
    26542654
     2655void WebPageProxy::setAlwaysShowsHorizontalScroller(bool alwaysShowsHorizontalScroller)
     2656{
     2657    if (!isValid())
     2658        return;
     2659
     2660    if (alwaysShowsHorizontalScroller == m_alwaysShowsHorizontalScroller)
     2661        return;
     2662
     2663    m_alwaysShowsHorizontalScroller = alwaysShowsHorizontalScroller;
     2664    m_process->send(Messages::WebPage::SetAlwaysShowsHorizontalScroller(alwaysShowsHorizontalScroller), m_pageID);
     2665}
     2666
     2667void WebPageProxy::setAlwaysShowsVerticalScroller(bool alwaysShowsVerticalScroller)
     2668{
     2669    if (!isValid())
     2670        return;
     2671
     2672    if (alwaysShowsVerticalScroller == m_alwaysShowsVerticalScroller)
     2673        return;
     2674
     2675    m_alwaysShowsVerticalScroller = alwaysShowsVerticalScroller;
     2676    m_process->send(Messages::WebPage::SetAlwaysShowsVerticalScroller(alwaysShowsVerticalScroller), m_pageID);
     2677}
     2678
    26552679void WebPageProxy::listenForLayoutMilestones(WebCore::LayoutMilestones milestones)
    26562680{
     
    57465770    parameters.useFixedLayout = m_useFixedLayout;
    57475771    parameters.fixedLayoutSize = m_fixedLayoutSize;
     5772    parameters.alwaysShowsHorizontalScroller = m_alwaysShowsHorizontalScroller;
     5773    parameters.alwaysShowsVerticalScroller = m_alwaysShowsVerticalScroller;
    57485774    parameters.suppressScrollbarAnimations = m_suppressScrollbarAnimations;
    57495775    parameters.paginationMode = m_paginationMode;
  • trunk/Source/WebKit/UIProcess/WebPageProxy.h

    r225954 r226008  
    733733    const WebCore::IntSize& fixedLayoutSize() const { return m_fixedLayoutSize; };
    734734
     735    void setAlwaysShowsHorizontalScroller(bool);
     736    void setAlwaysShowsVerticalScroller(bool);
     737    bool alwaysShowsHorizontalScroller() const { return m_alwaysShowsHorizontalScroller; }
     738    bool alwaysShowsVerticalScroller() const { return m_alwaysShowsVerticalScroller; }
     739
    735740    void listenForLayoutMilestones(WebCore::LayoutMilestones);
    736741
     
    18351840    WebCore::IntSize m_fixedLayoutSize;
    18361841
     1842    bool m_alwaysShowsHorizontalScroller { false };
     1843    bool m_alwaysShowsVerticalScroller { false };
     1844
    18371845    WebCore::LayoutMilestones m_observedLayoutMilestones { 0 };
    18381846
  • trunk/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp

    r225954 r226008  
    13861386    ScrollbarMode defaultScrollbarMode = shouldHideScrollbars ? ScrollbarAlwaysOff : ScrollbarAuto;
    13871387
     1388    ScrollbarMode horizontalScrollbarMode = webPage->alwaysShowsHorizontalScroller() ? ScrollbarAlwaysOn : defaultScrollbarMode;
     1389    ScrollbarMode verticalScrollbarMode = webPage->alwaysShowsVerticalScroller() ? ScrollbarAlwaysOn : defaultScrollbarMode;
     1390
     1391    bool horizontalLock = shouldHideScrollbars || webPage->alwaysShowsHorizontalScroller();
     1392    bool verticalLock = shouldHideScrollbars || webPage->alwaysShowsVerticalScroller();
     1393
    13881394    m_frame->coreFrame()->createView(webPage->size(), backgroundColor, isTransparent,
    13891395        webPage->fixedLayoutSize(), fixedVisibleContentRect, shouldUseFixedLayout,
    1390         defaultScrollbarMode, /* lock */ shouldHideScrollbars, defaultScrollbarMode, /* lock */ shouldHideScrollbars);
     1396        horizontalScrollbarMode, horizontalLock, verticalScrollbarMode, verticalLock);
    13911397
    13921398    if (int minimumLayoutWidth = webPage->minimumLayoutSize().width()) {
  • trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp

    r225977 r226008  
    324324    : m_pageID(pageID)
    325325    , m_viewSize(parameters.viewSize)
     326    , m_alwaysShowsHorizontalScroller { parameters.alwaysShowsHorizontalScroller }
     327    , m_alwaysShowsVerticalScroller { parameters.alwaysShowsVerticalScroller }
    326328#if ENABLE(PRIMARY_SNAPSHOTTED_PLUGIN_HEURISTIC)
    327329    , m_determinePrimarySnapshottedPlugInTimer(RunLoop::main(), this, &WebPage::determinePrimarySnapshottedPlugInTimerFired)
     
    49154917}
    49164918
     4919void WebPage::setAlwaysShowsHorizontalScroller(bool alwaysShowsHorizontalScroller)
     4920{
     4921    if (alwaysShowsHorizontalScroller == m_alwaysShowsHorizontalScroller)
     4922        return;
     4923
     4924    m_alwaysShowsHorizontalScroller = alwaysShowsHorizontalScroller;
     4925    auto view = corePage()->mainFrame().view();
     4926    if (!alwaysShowsHorizontalScroller)
     4927        view->setHorizontalScrollbarLock(false);
     4928    view->setHorizontalScrollbarMode(alwaysShowsHorizontalScroller ? ScrollbarAlwaysOn : m_mainFrameIsScrollable ? ScrollbarAuto : ScrollbarAlwaysOff, alwaysShowsHorizontalScroller || !m_mainFrameIsScrollable);
     4929}
     4930
     4931void WebPage::setAlwaysShowsVerticalScroller(bool alwaysShowsVerticalScroller)
     4932{
     4933    if (alwaysShowsVerticalScroller == m_alwaysShowsVerticalScroller)
     4934        return;
     4935
     4936    m_alwaysShowsVerticalScroller = alwaysShowsVerticalScroller;
     4937    auto view = corePage()->mainFrame().view();
     4938    if (!alwaysShowsVerticalScroller)
     4939        view->setVerticalScrollbarLock(false);
     4940    view->setVerticalScrollbarMode(alwaysShowsVerticalScroller ? ScrollbarAlwaysOn : m_mainFrameIsScrollable ? ScrollbarAuto : ScrollbarAlwaysOff, alwaysShowsVerticalScroller || !m_mainFrameIsScrollable);
     4941}
     4942
    49174943void WebPage::setMinimumLayoutSize(const IntSize& minimumLayoutSize)
    49184944{
  • trunk/Source/WebKit/WebProcess/WebPage/WebPage.h

    r225954 r226008  
    914914    bool mainFrameIsScrollable() const { return m_mainFrameIsScrollable; }
    915915
     916    void setAlwaysShowsHorizontalScroller(bool);
     917    void setAlwaysShowsVerticalScroller(bool);
     918
     919    bool alwaysShowsHorizontalScroller() const { return m_alwaysShowsHorizontalScroller; };
     920    bool alwaysShowsVerticalScroller() const { return m_alwaysShowsVerticalScroller; };
     921
    916922    void setMinimumLayoutSize(const WebCore::IntSize&);
    917923    WebCore::IntSize minimumLayoutSize() const { return m_minimumLayoutSize; }
     
    13971403    bool m_mainFrameIsScrollable { true };
    13981404
     1405    bool m_alwaysShowsHorizontalScroller { false };
     1406    bool m_alwaysShowsVerticalScroller { false };
     1407
    13991408#if PLATFORM(IOS)
    14001409    bool m_ignoreViewportScalingConstraints { false };
  • trunk/Source/WebKit/WebProcess/WebPage/WebPage.messages.in

    r225954 r226008  
    400400#endif
    401401
     402    SetAlwaysShowsHorizontalScroller(bool alwaysShowsHorizontalScroller)
     403    SetAlwaysShowsVerticalScroller(bool alwaysShowsVerticalScroller)
     404
    402405    SetMinimumLayoutSize(WebCore::IntSize minimumLayoutSize)
    403406    SetAutoSizingShouldExpandToViewHeight(bool shouldExpand)
  • trunk/Source/WebKitLegacy/mac/ChangeLog

    r225958 r226008  
     12017-12-16  Dan Bernstein  <mitz@apple.com>
     2
     3        WKWebView has no equivalent of -[WebView setAlwaysShowVerticalScroller:]
     4        https://bugs.webkit.org/show_bug.cgi?id=180613
     5        <rdar://problem/35946124>
     6
     7        Reviewed by Geoff Garen.
     8
     9        * WebKit.mac.exp: Removed WebCoreScrollbarAlwaysOn, which is no longer being used by any
     10          clients.
     11        * WebView/WebDynamicScrollBarsView.h: Ditto.
     12        * WebView/WebDynamicScrollBarsView.mm: Ditto.
     13
    1142017-12-14  David Kilzer  <ddkilzer@apple.com>
    215
  • trunk/Source/WebKitLegacy/mac/WebKit.mac.exp

    r212697 r226008  
    99_HIWebViewGetWebView
    1010_WebConvertNSImageToCGImageRef
    11 _WebCoreScrollbarAlwaysOn
    1211_WebIconDatabaseDidAddIconNotification
    1312_WebIconDatabaseDidRemoveAllIconsNotification
  • trunk/Source/WebKitLegacy/mac/WebView/WebDynamicScrollBarsView.h

    r160622 r226008  
    3333#import <AppKit/NSScrollView.h>
    3434
    35 // FIXME: <rdar://problem/5898985> Mail currently expects this header to define WebCoreScrollbarAlwaysOn.
    36 extern const int WebCoreScrollbarAlwaysOn;
    37 
    3835struct WebDynamicScrollBarsViewPrivate;
    3936@interface WebDynamicScrollBarsView : NSScrollView {
  • trunk/Source/WebKitLegacy/mac/WebView/WebDynamicScrollBarsView.mm

    r223720 r226008  
    3737using namespace WebCore;
    3838
    39 // FIXME: <rdar://problem/5898985> Mail expects a constant of this name to exist.
    40 const int WebCoreScrollbarAlwaysOn = ScrollbarAlwaysOn;
    41 
    4239#ifndef __OBJC2__
    4340// In <rdar://problem/7814899> we saw crashes because WebDynamicScrollBarsView increased in size, breaking ABI compatiblity.
  • trunk/Tools/ChangeLog

    r226002 r226008  
     12017-12-16  Dan Bernstein  <mitz@apple.com>
     2
     3        WKWebView has no equivalent of -[WebView setAlwaysShowVerticalScroller:]
     4        https://bugs.webkit.org/show_bug.cgi?id=180613
     5        <rdar://problem/35946124>
     6
     7        Reviewed by Geoff Garen.
     8
     9        * MiniBrowser/mac/MainMenu.xib: Added Always Show {Horizontal,Vertical} Scroller menu items
     10          to the View menu.
     11
     12        * MiniBrowser/mac/WK1BrowserWindowController.m:
     13        (-[WK1BrowserWindowController validateMenuItem:]): Set the state of the new menu items based
     14          on -alwaysShow{Horizontal,Vertical}Scroller.
     15        (-[WK1BrowserWindowController toggleAlwaysShowsHorizontalScroller:]): Toggle the value.
     16        (-[WK1BrowserWindowController toggleAlwaysShowsVerticalScroller:]): Ditto.
     17
     18        * MiniBrowser/mac/WK2BrowserWindowController.m:
     19        (-[WK2BrowserWindowController validateMenuItem:]): Set the state of the new menu items based
     20          on the new property.
     21        (-[WK2BrowserWindowController toggleAlwaysShowsHorizontalScroller:]): Toggle the property.
     22        (-[WK2BrowserWindowController toggleAlwaysShowsVerticalScroller:]): Ditto.
     23
     24        * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
     25        * TestWebKitAPI/Tests/WebKitCocoa/WKWebViewAlwaysShowsScroller.mm: Added.
     26        (TEST):
     27
    1282017-12-16  Basuke Suzuki  <Basuke.Suzuki@sony.com>
    229
  • trunk/Tools/MiniBrowser/mac/MainMenu.xib

    r225277 r226008  
    11<?xml version="1.0" encoding="UTF-8"?>
    2 <document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="13168.4" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none">
     2<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="13771" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none">
    33    <dependencies>
    4         <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="13168.4"/>
     4        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="13771"/>
    55    </dependencies>
    66    <objects>
     
    735735                                    </items>
    736736                                </menu>
     737                            </menuItem>
     738                            <menuItem title="Always Show Horizontal Scroller" id="vTs-1N-5Cb">
     739                                <modifierMask key="keyEquivalentModifierMask"/>
     740                                <connections>
     741                                    <action selector="toggleAlwaysShowsHorizontalScroller:" target="-1" id="WAH-WK-kRY"/>
     742                                </connections>
     743                            </menuItem>
     744                            <menuItem title="Always Show Vertical Scroller" id="dad-Bl-adD">
     745                                <modifierMask key="keyEquivalentModifierMask"/>
     746                                <connections>
     747                                    <action selector="toggleAlwaysShowsVerticalScroller:" target="-1" id="zGl-OI-HH6"/>
     748                                </connections>
    737749                            </menuItem>
    738750                            <menuItem isSeparatorItem="YES" id="581"/>
  • trunk/Tools/MiniBrowser/mac/WK1BrowserWindowController.m

    r225949 r226008  
    152152    else if (action == @selector(showHideWebInspector:))
    153153        [menuItem setTitle:_webView.inspector.isOpen ? @"Close Web Inspector" : @"Show Web Inspector"];
     154    else if (action == @selector(toggleAlwaysShowsHorizontalScroller:))
     155        menuItem.state = _webView.alwaysShowHorizontalScroller ? NSOnState : NSOffState;
     156    else if (action == @selector(toggleAlwaysShowsVerticalScroller:))
     157        menuItem.state = _webView.alwaysShowVerticalScroller ? NSOnState : NSOffState;
    154158
    155159    if (action == @selector(setPageScale:))
     
    263267    else
    264268        [inspector show:sender];
     269}
     270
     271- (IBAction)toggleAlwaysShowsHorizontalScroller:(id)sender
     272{
     273    _webView.alwaysShowHorizontalScroller = !_webView.alwaysShowHorizontalScroller;
     274}
     275
     276- (IBAction)toggleAlwaysShowsVerticalScroller:(id)sender
     277{
     278    _webView.alwaysShowVerticalScroller = !_webView.alwaysShowVerticalScroller;
    265279}
    266280
  • trunk/Tools/MiniBrowser/mac/WK2BrowserWindowController.m

    r224268 r226008  
    210210    else if (action == @selector(showHideWebInspector:))
    211211        [menuItem setTitle:WKInspectorIsVisible(WKPageGetInspector(_webView._pageRefForTransitionToWKWebView)) ? @"Close Web Inspector" : @"Show Web Inspector"];
     212    else if (action == @selector(toggleAlwaysShowsHorizontalScroller:))
     213        menuItem.state = _webView._alwaysShowsHorizontalScroller ? NSOnState : NSOffState;
     214    else if (action == @selector(toggleAlwaysShowsVerticalScroller:))
     215        menuItem.state = _webView._alwaysShowsVerticalScroller ? NSOnState : NSOffState;
    212216
    213217    if (action == @selector(setPageScale:))
     
    290294    else
    291295        WKInspectorShow(inspectorRef);
     296}
     297
     298- (IBAction)toggleAlwaysShowsHorizontalScroller:(id)sender
     299{
     300    _webView._alwaysShowsHorizontalScroller = !_webView._alwaysShowsHorizontalScroller;
     301}
     302
     303- (IBAction)toggleAlwaysShowsVerticalScroller:(id)sender
     304{
     305    _webView._alwaysShowsVerticalScroller = !_webView._alwaysShowsVerticalScroller;
    292306}
    293307
  • trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj

    r225857 r226008  
    122122                33E79E06137B5FD900E32D99 /* mouse-move-listener.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 33E79E05137B5FCE00E32D99 /* mouse-move-listener.html */; };
    123123                370CE22A1F57343400E7410B /* WKContentViewTargetForAction.mm in Sources */ = {isa = PBXBuildFile; fileRef = 370CE2291F57343400E7410B /* WKContentViewTargetForAction.mm */; };
     124                371195AB1FE5797700A1FB92 /* WKWebViewAlwaysShowsScroller.mm in Sources */ = {isa = PBXBuildFile; fileRef = 371195AA1FE5797700A1FB92 /* WKWebViewAlwaysShowsScroller.mm */; };
    124125                374B7A601DF36EEE00ACCB6C /* BundleEditingDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 374B7A5E1DF36EEE00ACCB6C /* BundleEditingDelegate.mm */; };
    125126                374B7A611DF371CF00ACCB6C /* BundleEditingDelegatePlugIn.mm in Sources */ = {isa = PBXBuildFile; fileRef = 374B7A5F1DF36EEE00ACCB6C /* BundleEditingDelegatePlugIn.mm */; };
     
    12251226                33E79E05137B5FCE00E32D99 /* mouse-move-listener.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "mouse-move-listener.html"; sourceTree = "<group>"; };
    12261227                370CE2291F57343400E7410B /* WKContentViewTargetForAction.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = WKContentViewTargetForAction.mm; sourceTree = "<group>"; };
     1228                371195AA1FE5797700A1FB92 /* WKWebViewAlwaysShowsScroller.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = WKWebViewAlwaysShowsScroller.mm; sourceTree = "<group>"; };
    12271229                3722C8681461E03E00C45D00 /* RenderedImageFromDOMRange.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RenderedImageFromDOMRange.mm; sourceTree = "<group>"; };
    12281230                374B7A5E1DF36EEE00ACCB6C /* BundleEditingDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = BundleEditingDelegate.mm; sourceTree = "<group>"; };
     
    21292131                                51C683DD1EA134DB00650183 /* WKURLSchemeHandler-1.mm */,
    21302132                                5182C22D1F2BCB410059BA7C /* WKURLSchemeHandler-leaks.mm */,
     2133                                371195AA1FE5797700A1FB92 /* WKWebViewAlwaysShowsScroller.mm */,
    21312134                                2EFF06D61D8AF34A0004BB30 /* WKWebViewCandidateTests.mm */,
    21322135                                5CB3CE381FA1691700C3A2D6 /* WKWebViewConfiguration.mm */,
     
    31773180                                7C83DE9C1D0A590C00FEBCF3 /* BloomFilter.cpp in Sources */,
    31783181                                7C83DEA01D0A590C00FEBCF3 /* CheckedArithmeticOperations.cpp in Sources */,
     3182                                0F30CB5C1FCE1796004B5323 /* ConcurrentPtrHashSet.cpp in Sources */,
    31793183                                7C83DEC31D0A590C00FEBCF3 /* Condition.cpp in Sources */,
     3184                                FE05FAF11FE08CD400093230 /* ConstExprPoisoned.cpp in Sources */,
    31803185                                7C83DEA61D0A590C00FEBCF3 /* Counters.cpp in Sources */,
    31813186                                7C83DEA91D0A590C00FEBCF3 /* CString.cpp in Sources */,
     
    31973202                                A57D54F61F3395D000A97AA7 /* Logger.cpp in Sources */,
    31983203                                7C83DEED1D0A590C00FEBCF3 /* MathExtras.cpp in Sources */,
    3199                                 FE05FAF11FE08CD400093230 /* ConstExprPoisoned.cpp in Sources */,
    32003204                                7C83DEEF1D0A590C00FEBCF3 /* MD5.cpp in Sources */,
    32013205                                7C83DEF11D0A590C00FEBCF3 /* MediaTime.cpp in Sources */,
     
    32033207                                7C83DEFE1D0A590C00FEBCF3 /* NakedPtr.cpp in Sources */,
    32043208                                A57D54F31F338C3600A97AA7 /* NeverDestroyed.cpp in Sources */,
    3205                                 0F30CB5C1FCE1796004B5323 /* ConcurrentPtrHashSet.cpp in Sources */,
    32063209                                7C83DF011D0A590C00FEBCF3 /* Optional.cpp in Sources */,
    32073210                                1A77BAA31D9AFFFC005FC568 /* OptionSet.cpp in Sources */,
    32083211                                7C83DF021D0A590C00FEBCF3 /* OSObjectPtr.cpp in Sources */,
    32093212                                7C83DF591D0A590C00FEBCF3 /* ParkingLot.cpp in Sources */,
     3213                                FE05FAEF1FE0645B00093230 /* Poisoned.cpp in Sources */,
    32103214                                53EC25411E96FD87000831B9 /* PriorityQueue.cpp in Sources */,
    32113215                                7C83DF131D0A590C00FEBCF3 /* RedBlackTree.cpp in Sources */,
     
    32183222                                7C83DF261D0A590C00FEBCF3 /* SaturatedArithmeticOperations.cpp in Sources */,
    32193223                                1A3524AE1D63A4FB0031729B /* Scope.cpp in Sources */,
    3220                                 FE05FAEF1FE0645B00093230 /* Poisoned.cpp in Sources */,
    32213224                                7C83DF121D0A590C00FEBCF3 /* ScopedLambda.cpp in Sources */,
    32223225                                7C83DF3D1D0A590C00FEBCF3 /* SetForScope.cpp in Sources */,
     
    36053608                                51C683DE1EA134E800650183 /* WKURLSchemeHandler-1.mm in Sources */,
    36063609                                5182C22E1F2BCE540059BA7C /* WKURLSchemeHandler-leaks.mm in Sources */,
     3610                                371195AB1FE5797700A1FB92 /* WKWebViewAlwaysShowsScroller.mm in Sources */,
    36073611                                514958BE1F7427AC00E87BAD /* WKWebViewAutofillTests.mm in Sources */,
    36083612                                2EFF06D71D8AF34A0004BB30 /* WKWebViewCandidateTests.mm in Sources */,
Note: See TracChangeset for help on using the changeset viewer.