⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 98769 in webkit


Ignore:
Timestamp:
Oct 28, 2011, 3:07:16 PM (15 years ago)
Author:
sullivan@apple.com
Message:

Source/WebCore: WebCore part of:
https://bugs.webkit.org/show_bug.cgi?id=71142
Whether backspace goes Back should be configurable

Reviewed by Sam Weinig.

  • page/EventHandler.cpp:

(WebCore::EventHandler::defaultBackspaceEventHandler):
Bail out if backspace navigation is not enabled.

  • page/Settings.cpp:

(WebCore::Settings::Settings):
Initialize m_backspaceKeyNavigationEnabled to true to match current behavior.

  • page/Settings.h:

Declared m_backspaceKeyNavigationEnabled.
(WebCore::Settings::setBackspaceKeyNavigationEnabled):
New function, simple setter.
(WebCore::Settings::backspaceKeyNavigationEnabled):
New function, simple getter.

Source/WebKit/mac: WebKit part of:
https://bugs.webkit.org/show_bug.cgi?id=71142
Whether backspace goes Back should be configurable

Reviewed by Sam Weinig.

  • WebView/WebFrameView.mm:

(-[WebFrameView keyDown:]):
Honor the new preference.

  • WebView/WebPreferenceKeysPrivate.h:

Added #define for WebKitBackspaceKeyNavigationEnabledKey

  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
Initialize new pref to YES, to match current behavior.
(-[WebPreferences setBackspaceKeyNavigationEnabled:]):
New method, standard prefs setter.
(-[WebPreferences backspaceKeyNavigationEnabled]):
New method, standard prefs getter.

  • WebView/WebPreferencesPrivate.h:

Declared new methods.

  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):
Updates WebCore settings from WebKit prefs.

Source/WebKit2: WebKit2 part of:
https://bugs.webkit.org/show_bug.cgi?id=71142
Whether backspace goes Back should be configurable

Reviewed by Sam Weinig.

  • Shared/WebPreferencesStore.h:

Declared backspaceKeyNavigationEnabled property using macro. This initializes
it to true, to match current behavior.

  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetBackspaceKeyNavigationEnabled):
New function, pass value to impl.
(WKPreferencesGetBackspaceKeyNavigationEnabled):
New function, returns result from impl.

  • UIProcess/API/C/WKPreferences.h:

Declared API functions for new preference.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):
Updates WebCore settings from WebKit2 prefs.

Location:
trunk/Source
Files:
15 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r98767 r98769  
     12011-10-28  John Sullivan  <sullivan@apple.com>
     2
     3        WebCore part of:
     4        https://bugs.webkit.org/show_bug.cgi?id=71142
     5        Whether backspace goes Back should be configurable
     6
     7        Reviewed by Sam Weinig.
     8
     9        * page/EventHandler.cpp:
     10        (WebCore::EventHandler::defaultBackspaceEventHandler):
     11        Bail out if backspace navigation is not enabled.
     12
     13        * page/Settings.cpp:
     14        (WebCore::Settings::Settings):
     15        Initialize m_backspaceKeyNavigationEnabled to true to match current behavior.
     16
     17        * page/Settings.h:
     18        Declared m_backspaceKeyNavigationEnabled.
     19        (WebCore::Settings::setBackspaceKeyNavigationEnabled):
     20        New function, simple setter.
     21        (WebCore::Settings::backspaceKeyNavigationEnabled):
     22        New function, simple getter.
     23
    1242011-10-28  Emil A Eklund  <eae@chromium.org>
    225
  • trunk/Source/WebCore/page/EventHandler.cpp

    r98656 r98769  
    30243024    if (!m_frame->editor()->behavior().shouldNavigateBackOnBackspace())
    30253025        return;
     3026   
     3027    if (!m_frame->settings()->backspaceKeyNavigationEnabled())
     3028        return;
    30263029
    30273030    Page* page = m_frame->page();
  • trunk/Source/WebCore/page/Settings.cpp

    r98730 r98769  
    230230#endif
    231231    , m_suppressIncrementalRendering(false)
     232    , m_backspaceKeyNavigationEnabled(true)
    232233    , m_loadsImagesAutomaticallyTimer(this, &Settings::loadsImagesAutomaticallyTimerFired)
    233234{
  • trunk/Source/WebCore/page/Settings.h

    r98730 r98769  
    470470        void setSuppressIncrementalRendering(bool flag) { m_suppressIncrementalRendering = flag; }
    471471        bool suppressIncrementalRendering() const { return m_suppressIncrementalRendering; }
    472 
     472       
     473        void setBackspaceKeyNavigationEnabled(bool flag) { m_backspaceKeyNavigationEnabled = flag; }
     474        bool backspaceKeyNavigationEnabled() const { return m_backspaceKeyNavigationEnabled; }
     475       
    473476        void setPasswordEchoDurationInSeconds(double durationInSeconds) { m_passwordEchoDurationInSeconds = durationInSeconds; }
    474477        double passwordEchoDurationInSeconds() const { return m_passwordEchoDurationInSeconds; }
     
    608611        bool m_passwordEchoEnabled : 1;
    609612        bool m_suppressIncrementalRendering : 1;
     613        bool m_backspaceKeyNavigationEnabled : 1;
    610614
    611615        Timer<Settings> m_loadsImagesAutomaticallyTimer;
  • trunk/Source/WebKit/mac/ChangeLog

    r98730 r98769  
     12011-10-28  John Sullivan  <sullivan@apple.com>
     2
     3        WebKit part of:
     4        https://bugs.webkit.org/show_bug.cgi?id=71142
     5        Whether backspace goes Back should be configurable
     6
     7        Reviewed by Sam Weinig.
     8
     9        * WebView/WebFrameView.mm:
     10        (-[WebFrameView keyDown:]):
     11        Honor the new preference.
     12
     13        * WebView/WebPreferenceKeysPrivate.h:
     14        Added #define for WebKitBackspaceKeyNavigationEnabledKey
     15       
     16        * WebView/WebPreferences.mm:
     17        (+[WebPreferences initialize]):
     18        Initialize new pref to YES, to match current behavior.
     19        (-[WebPreferences setBackspaceKeyNavigationEnabled:]):
     20        New method, standard prefs setter.
     21        (-[WebPreferences backspaceKeyNavigationEnabled]):
     22        New method, standard prefs getter.
     23
     24        * WebView/WebPreferencesPrivate.h:
     25        Declared new methods.
     26       
     27        * WebView/WebView.mm:
     28        (-[WebView _preferencesChanged:]):
     29        Updates WebCore settings from WebKit prefs.
     30
    1312011-10-28  Jochen Eisinger  <jochen@chromium.org>
    232
  • trunk/Source/WebKit/mac/WebView/WebFrameView.mm

    r95725 r98769  
    785785        switch ([characters characterAtIndex:index]) {
    786786            case NSDeleteCharacter:
    787                 if (!maintainsBackForwardList) {
     787                if (!maintainsBackForwardList || ![[[self _webView] preferences] backspaceKeyNavigationEnabled]) {
    788788                    callSuper = YES;
    789789                    break;
  • trunk/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h

    r96786 r98769  
    127127#define WebKitUsePreHTML5ParserQuirksKey @"WebKitUsePreHTML5ParserQuirks"
    128128#define WebKitSuppressIncrementalRenderingKey @"WebKitSuppressIncrementalRendering"
     129#define WebKitBackspaceKeyNavigationEnabledKey @"WebKitBackspaceKeyNavigationEnabled"
    129130
    130131// CoreGraphics deferred updates are disabled if WebKitEnableCoalescedUpdatesPreferenceKey is set
  • trunk/Source/WebKit/mac/WebView/WebPreferences.mm

    r96786 r98769  
    387387        [NSNumber numberWithBool:NO],   WebKitWebAudioEnabledPreferenceKey,
    388388        [NSNumber numberWithBool:NO],   WebKitSuppressIncrementalRenderingKey,
     389        [NSNumber numberWithBool:YES],  WebKitBackspaceKeyNavigationEnabledKey,
    389390
    390391        [NSNumber numberWithLongLong:ApplicationCacheStorage::noQuota()], WebKitApplicationCacheTotalQuota,
     
    15641565}
    15651566
     1567- (void)setBackspaceKeyNavigationEnabled:(BOOL)flag
     1568{
     1569    [self _setBoolValue:flag forKey:WebKitBackspaceKeyNavigationEnabledKey];
     1570}
     1571
     1572- (BOOL)backspaceKeyNavigationEnabled
     1573{
     1574    return [self _boolValueForKey:WebKitBackspaceKeyNavigationEnabledKey];
     1575}
     1576
    15661577@end
    15671578
  • trunk/Source/WebKit/mac/WebView/WebPreferencesPrivate.h

    r96786 r98769  
    269269- (BOOL)suppressIncrementalRendering;
    270270
     271- (void)setBackspaceKeyNavigationEnabled:(BOOL)flag;
     272- (BOOL)backspaceKeyNavigationEnabled;
     273
    271274@end
  • trunk/Source/WebKit/mac/WebView/WebView.mm

    r98730 r98769  
    14751475    settings->setMediaPlaybackAllowsInline([preferences mediaPlaybackAllowsInline]);
    14761476    settings->setSuppressIncrementalRendering([preferences suppressIncrementalRendering]);
     1477    settings->setBackspaceKeyNavigationEnabled([preferences backspaceKeyNavigationEnabled]);
    14771478
    14781479    // Application Cache Preferences are stored on the global cache storage manager, not in Settings.
  • trunk/Source/WebKit2/ChangeLog

    r98759 r98769  
     12011-10-28  John Sullivan  <sullivan@apple.com>
     2
     3        WebKit2 part of:
     4        https://bugs.webkit.org/show_bug.cgi?id=71142
     5        Whether backspace goes Back should be configurable
     6
     7        Reviewed by Sam Weinig.
     8
     9        * Shared/WebPreferencesStore.h:
     10        Declared backspaceKeyNavigationEnabled property using macro. This initializes
     11        it to true, to match current behavior.
     12       
     13        * UIProcess/API/C/WKPreferences.cpp:
     14        (WKPreferencesSetBackspaceKeyNavigationEnabled):
     15        New function, pass value to impl.
     16        (WKPreferencesGetBackspaceKeyNavigationEnabled):
     17        New function, returns result from impl.
     18       
     19        * UIProcess/API/C/WKPreferences.h:
     20        Declared API functions for new preference.
     21       
     22        * WebProcess/WebPage/WebPage.cpp:
     23        (WebKit::WebPage::updatePreferences):
     24        Updates WebCore settings from WebKit2 prefs.
     25
    1262011-10-28  Timothy Hatcher  <timothy@apple.com>
    227
  • trunk/Source/WebKit2/Shared/WebPreferencesStore.h

    r96786 r98769  
    9797    macro(ApplicationChromeModeEnabled, applicationChromeMode, Bool, bool, false) \
    9898    macro(SuppressIncrementalRendering, suppressIncrementalRendering, Bool, bool, false) \
     99    macro(BackspaceKeyNavigationEnabled, backspaceKeyNavigationEnabled, Bool, bool, true) \
    99100    \
    100101
  • trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp

    r96786 r98769  
    652652    return toImpl(preferencesRef)->suppressIncrementalRendering();
    653653}
     654
     655void WKPreferencesSetBackspaceKeyNavigationEnabled(WKPreferencesRef preferencesRef, bool enabled)
     656{
     657    toImpl(preferencesRef)->setBackspaceKeyNavigationEnabled(enabled);
     658}
     659
     660bool WKPreferencesGetBackspaceKeyNavigationEnabled(WKPreferencesRef preferencesRef)
     661{
     662    return toImpl(preferencesRef)->backspaceKeyNavigationEnabled();
     663}
  • trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.h

    r96786 r98769  
    174174WK_EXPORT bool WKPreferencesGetSuppressIncrementalRendering(WKPreferencesRef preferencesRef);
    175175
     176// Defaults to true
     177WK_EXPORT void WKPreferencesSetBackspaceKeyNavigationEnabled(WKPreferencesRef preferencesRef, bool enabled);
     178WK_EXPORT bool WKPreferencesGetBackspaceKeyNavigationEnabled(WKPreferencesRef preferencesRef);
     179
    176180#ifdef __cplusplus
    177181}
  • trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp

    r98730 r98769  
    17491749    settings->setApplicationChromeMode(store.getBoolValueForKey(WebPreferencesKey::applicationChromeModeKey()));   
    17501750    settings->setSuppressIncrementalRendering(store.getBoolValueForKey(WebPreferencesKey::suppressIncrementalRenderingKey()));
     1751    settings->setBackspaceKeyNavigationEnabled(store.getBoolValueForKey(WebPreferencesKey::backspaceKeyNavigationEnabledKey()));
    17511752
    17521753    platformPreferencesDidChange(store);
Note: See TracChangeset for help on using the changeset viewer.