Diff
Modified: trunk/Source/WebCore/ChangeLog (98768 => 98769)
--- trunk/Source/WebCore/ChangeLog 2011-10-28 21:55:59 UTC (rev 98768)
+++ trunk/Source/WebCore/ChangeLog 2011-10-28 22:07:16 UTC (rev 98769)
@@ -1,3 +1,26 @@
+2011-10-28 John Sullivan <[email protected]>
+
+ 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.
+
2011-10-28 Emil A Eklund <[email protected]>
Overridden clippedOverflowRectForRepaint() still uses IntRects
Modified: trunk/Source/WebCore/page/EventHandler.cpp (98768 => 98769)
--- trunk/Source/WebCore/page/EventHandler.cpp 2011-10-28 21:55:59 UTC (rev 98768)
+++ trunk/Source/WebCore/page/EventHandler.cpp 2011-10-28 22:07:16 UTC (rev 98769)
@@ -3023,6 +3023,9 @@
if (!m_frame->editor()->behavior().shouldNavigateBackOnBackspace())
return;
+
+ if (!m_frame->settings()->backspaceKeyNavigationEnabled())
+ return;
Page* page = m_frame->page();
if (!page)
Modified: trunk/Source/WebCore/page/Settings.cpp (98768 => 98769)
--- trunk/Source/WebCore/page/Settings.cpp 2011-10-28 21:55:59 UTC (rev 98768)
+++ trunk/Source/WebCore/page/Settings.cpp 2011-10-28 22:07:16 UTC (rev 98769)
@@ -229,6 +229,7 @@
, m_passwordEchoEnabled(false)
#endif
, m_suppressIncrementalRendering(false)
+ , m_backspaceKeyNavigationEnabled(true)
, m_loadsImagesAutomaticallyTimer(this, &Settings::loadsImagesAutomaticallyTimerFired)
{
// A Frame may not have been created yet, so we initialize the AtomicString
Modified: trunk/Source/WebCore/page/Settings.h (98768 => 98769)
--- trunk/Source/WebCore/page/Settings.h 2011-10-28 21:55:59 UTC (rev 98768)
+++ trunk/Source/WebCore/page/Settings.h 2011-10-28 22:07:16 UTC (rev 98769)
@@ -469,7 +469,10 @@
void setSuppressIncrementalRendering(bool flag) { m_suppressIncrementalRendering = flag; }
bool suppressIncrementalRendering() const { return m_suppressIncrementalRendering; }
-
+
+ void setBackspaceKeyNavigationEnabled(bool flag) { m_backspaceKeyNavigationEnabled = flag; }
+ bool backspaceKeyNavigationEnabled() const { return m_backspaceKeyNavigationEnabled; }
+
void setPasswordEchoDurationInSeconds(double durationInSeconds) { m_passwordEchoDurationInSeconds = durationInSeconds; }
double passwordEchoDurationInSeconds() const { return m_passwordEchoDurationInSeconds; }
@@ -607,6 +610,7 @@
bool m_mediaPlaybackAllowsInline : 1;
bool m_passwordEchoEnabled : 1;
bool m_suppressIncrementalRendering : 1;
+ bool m_backspaceKeyNavigationEnabled : 1;
Timer<Settings> m_loadsImagesAutomaticallyTimer;
void loadsImagesAutomaticallyTimerFired(Timer<Settings>*);
Modified: trunk/Source/WebKit/mac/ChangeLog (98768 => 98769)
--- trunk/Source/WebKit/mac/ChangeLog 2011-10-28 21:55:59 UTC (rev 98768)
+++ trunk/Source/WebKit/mac/ChangeLog 2011-10-28 22:07:16 UTC (rev 98769)
@@ -1,3 +1,33 @@
+2011-10-28 John Sullivan <[email protected]>
+
+ 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.
+
2011-10-28 Jochen Eisinger <[email protected]>
Rename a number of methods mentioning _javascript_ to just Script instead
Modified: trunk/Source/WebKit/mac/WebView/WebFrameView.mm (98768 => 98769)
--- trunk/Source/WebKit/mac/WebView/WebFrameView.mm 2011-10-28 21:55:59 UTC (rev 98768)
+++ trunk/Source/WebKit/mac/WebView/WebFrameView.mm 2011-10-28 22:07:16 UTC (rev 98769)
@@ -784,7 +784,7 @@
for (index = 0; index < count; ++index) {
switch ([characters characterAtIndex:index]) {
case NSDeleteCharacter:
- if (!maintainsBackForwardList) {
+ if (!maintainsBackForwardList || ![[[self _webView] preferences] backspaceKeyNavigationEnabled]) {
callSuper = YES;
break;
}
Modified: trunk/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h (98768 => 98769)
--- trunk/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h 2011-10-28 21:55:59 UTC (rev 98768)
+++ trunk/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h 2011-10-28 22:07:16 UTC (rev 98769)
@@ -126,6 +126,7 @@
#define WebKitEditingBehaviorPreferenceKey @"WebKitEditingBehavior"
#define WebKitUsePreHTML5ParserQuirksKey @"WebKitUsePreHTML5ParserQuirks"
#define WebKitSuppressIncrementalRenderingKey @"WebKitSuppressIncrementalRendering"
+#define WebKitBackspaceKeyNavigationEnabledKey @"WebKitBackspaceKeyNavigationEnabled"
// CoreGraphics deferred updates are disabled if WebKitEnableCoalescedUpdatesPreferenceKey is set
// to NO, or has no value. For compatibility with Mac OS X 10.4.6, deferred updates are OFF by
Modified: trunk/Source/WebKit/mac/WebView/WebPreferences.mm (98768 => 98769)
--- trunk/Source/WebKit/mac/WebView/WebPreferences.mm 2011-10-28 21:55:59 UTC (rev 98768)
+++ trunk/Source/WebKit/mac/WebView/WebPreferences.mm 2011-10-28 22:07:16 UTC (rev 98769)
@@ -386,6 +386,7 @@
[NSNumber numberWithBool:YES], WebKitMediaPlaybackAllowsInlinePreferenceKey,
[NSNumber numberWithBool:NO], WebKitWebAudioEnabledPreferenceKey,
[NSNumber numberWithBool:NO], WebKitSuppressIncrementalRenderingKey,
+ [NSNumber numberWithBool:YES], WebKitBackspaceKeyNavigationEnabledKey,
[NSNumber numberWithLongLong:ApplicationCacheStorage::noQuota()], WebKitApplicationCacheTotalQuota,
[NSNumber numberWithLongLong:ApplicationCacheStorage::noQuota()], WebKitApplicationCacheDefaultOriginQuota,
@@ -1563,6 +1564,16 @@
return [self _boolValueForKey:WebKitSuppressIncrementalRenderingKey];
}
+- (void)setBackspaceKeyNavigationEnabled:(BOOL)flag
+{
+ [self _setBoolValue:flag forKey:WebKitBackspaceKeyNavigationEnabledKey];
+}
+
+- (BOOL)backspaceKeyNavigationEnabled
+{
+ return [self _boolValueForKey:WebKitBackspaceKeyNavigationEnabledKey];
+}
+
@end
@implementation WebPreferences (WebInternal)
Modified: trunk/Source/WebKit/mac/WebView/WebPreferencesPrivate.h (98768 => 98769)
--- trunk/Source/WebKit/mac/WebView/WebPreferencesPrivate.h 2011-10-28 21:55:59 UTC (rev 98768)
+++ trunk/Source/WebKit/mac/WebView/WebPreferencesPrivate.h 2011-10-28 22:07:16 UTC (rev 98769)
@@ -268,4 +268,7 @@
- (void)setSuppressIncrementalRendering:(BOOL)flag;
- (BOOL)suppressIncrementalRendering;
+- (void)setBackspaceKeyNavigationEnabled:(BOOL)flag;
+- (BOOL)backspaceKeyNavigationEnabled;
+
@end
Modified: trunk/Source/WebKit/mac/WebView/WebView.mm (98768 => 98769)
--- trunk/Source/WebKit/mac/WebView/WebView.mm 2011-10-28 21:55:59 UTC (rev 98768)
+++ trunk/Source/WebKit/mac/WebView/WebView.mm 2011-10-28 22:07:16 UTC (rev 98769)
@@ -1474,6 +1474,7 @@
settings->setMediaPlaybackRequiresUserGesture([preferences mediaPlaybackRequiresUserGesture]);
settings->setMediaPlaybackAllowsInline([preferences mediaPlaybackAllowsInline]);
settings->setSuppressIncrementalRendering([preferences suppressIncrementalRendering]);
+ settings->setBackspaceKeyNavigationEnabled([preferences backspaceKeyNavigationEnabled]);
// Application Cache Preferences are stored on the global cache storage manager, not in Settings.
[WebApplicationCache setDefaultOriginQuota:[preferences applicationCacheDefaultOriginQuota]];
Modified: trunk/Source/WebKit2/ChangeLog (98768 => 98769)
--- trunk/Source/WebKit2/ChangeLog 2011-10-28 21:55:59 UTC (rev 98768)
+++ trunk/Source/WebKit2/ChangeLog 2011-10-28 22:07:16 UTC (rev 98769)
@@ -1,3 +1,28 @@
+2011-10-28 John Sullivan <[email protected]>
+
+ 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.
+
2011-10-28 Timothy Hatcher <[email protected]>
Support using a different front-end for the Web Inspector in WebKit2.
Modified: trunk/Source/WebKit2/Shared/WebPreferencesStore.h (98768 => 98769)
--- trunk/Source/WebKit2/Shared/WebPreferencesStore.h 2011-10-28 21:55:59 UTC (rev 98768)
+++ trunk/Source/WebKit2/Shared/WebPreferencesStore.h 2011-10-28 22:07:16 UTC (rev 98769)
@@ -96,6 +96,7 @@
macro(WebAudioEnabled, webAudioEnabled, Bool, bool, false) \
macro(ApplicationChromeModeEnabled, applicationChromeMode, Bool, bool, false) \
macro(SuppressIncrementalRendering, suppressIncrementalRendering, Bool, bool, false) \
+ macro(BackspaceKeyNavigationEnabled, backspaceKeyNavigationEnabled, Bool, bool, true) \
\
#define FOR_EACH_WEBKIT_DOUBLE_PREFERENCE(macro) \
Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp (98768 => 98769)
--- trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp 2011-10-28 21:55:59 UTC (rev 98768)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp 2011-10-28 22:07:16 UTC (rev 98769)
@@ -651,3 +651,13 @@
{
return toImpl(preferencesRef)->suppressIncrementalRendering();
}
+
+void WKPreferencesSetBackspaceKeyNavigationEnabled(WKPreferencesRef preferencesRef, bool enabled)
+{
+ toImpl(preferencesRef)->setBackspaceKeyNavigationEnabled(enabled);
+}
+
+bool WKPreferencesGetBackspaceKeyNavigationEnabled(WKPreferencesRef preferencesRef)
+{
+ return toImpl(preferencesRef)->backspaceKeyNavigationEnabled();
+}
Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.h (98768 => 98769)
--- trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.h 2011-10-28 21:55:59 UTC (rev 98768)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.h 2011-10-28 22:07:16 UTC (rev 98769)
@@ -173,6 +173,10 @@
WK_EXPORT void WKPreferencesSetSuppressIncrementalRendering(WKPreferencesRef preferencesRef, bool enabled);
WK_EXPORT bool WKPreferencesGetSuppressIncrementalRendering(WKPreferencesRef preferencesRef);
+// Defaults to true
+WK_EXPORT void WKPreferencesSetBackspaceKeyNavigationEnabled(WKPreferencesRef preferencesRef, bool enabled);
+WK_EXPORT bool WKPreferencesGetBackspaceKeyNavigationEnabled(WKPreferencesRef preferencesRef);
+
#ifdef __cplusplus
}
#endif
Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (98768 => 98769)
--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp 2011-10-28 21:55:59 UTC (rev 98768)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp 2011-10-28 22:07:16 UTC (rev 98769)
@@ -1748,6 +1748,7 @@
settings->setApplicationChromeMode(store.getBoolValueForKey(WebPreferencesKey::applicationChromeModeKey()));
settings->setSuppressIncrementalRendering(store.getBoolValueForKey(WebPreferencesKey::suppressIncrementalRenderingKey()));
+ settings->setBackspaceKeyNavigationEnabled(store.getBoolValueForKey(WebPreferencesKey::backspaceKeyNavigationEnabledKey()));
platformPreferencesDidChange(store);
}