Diff
Modified: trunk/Source/WebKit2/ChangeLog (99482 => 99483)
--- trunk/Source/WebKit2/ChangeLog 2011-11-07 22:46:35 UTC (rev 99482)
+++ trunk/Source/WebKit2/ChangeLog 2011-11-07 22:51:59 UTC (rev 99483)
@@ -1,3 +1,55 @@
+2011-11-07 Alexey Proskuryakov <a...@apple.com>
+
+ The Full Keyboard Access preference should be read in the UI process
+ https://bugs.webkit.org/show_bug.cgi?id=71734
+ <rdar://problem/9237619>
+
+ Reviewed by Darin Adler.
+
+ This is consistent with how other global preferences (like language) are handled, and lets
+ us tighten up the sandbox a little.
+
+ * Shared/WebProcessCreationParameters.cpp:
+ (WebKit::WebProcessCreationParameters::encode):
+ (WebKit::WebProcessCreationParameters::decode):
+ * Shared/WebProcessCreationParameters.h:
+ Added fullKeyboardAccessEnabled, so that newly started processes have the right preference value.
+
+ * UIProcess/WebContext.h:
+ * UIProcess/WebContext.cpp:
+ (WebKit::WebContext::fullKeyboardAccessModeChanged): If preference changes while a web process
+ is already running, tell it.
+ (WebKit::WebContext::ensureWebProcess): Set parameters.fullKeyboardAccessEnabled from current
+ preference.
+
+ * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::fullKeyboardAccessEnabled):
+ * UIProcess/mac/WebProcessProxyMac.mm: (WebKit::WebProcessProxy::fullKeyboardAccessEnabled):
+ * UIProcess/WebProcessProxy.h:
+ Proxy it to Objective-C code. WebProcessProxy is as good place to have the static function
+ as any. One day, we will make code more consistent with language and other global preferences.
+
+ * UIProcess/mac/WKFullKeyboardAccessWatcher.h: Copied from Source/WebKit2/WebProcess/mac/WKFullKeyboardAccessWatcher.h.
+ * UIProcess/mac/WKFullKeyboardAccessWatcher.mm: Copied from Source/WebKit2/WebProcess/mac/WKFullKeyboardAccessWatcher.mm.
+ * WebProcess/mac/WKFullKeyboardAccessWatcher.h: Removed.
+ * WebProcess/mac/WKFullKeyboardAccessWatcher.mm: Removed.
+ (-[WKFullKeyboardAccessWatcher retrieveKeyboardUIModeFromPreferences:]): Once retrieved,
+ push the preference value.
+
+ * WebKit2.xcodeproj/project.pbxproj: WKFullKeyboardAccessWatcher is now in UI process.
+
+ * WebProcess/WebProcess.h:
+ * WebProcess/WebProcess.cpp:
+ (WebKit::WebProcess::WebProcess):
+ (WebKit::WebProcess::fullKeyboardAccessModeChanged):
+ (WebKit::WebProcess::fullKeyboardAccessEnabled):
+ * WebProcess/mac/WebProcessMac.mm:
+ WebCprocess now holds the preference value in a mamber value, which UI process pushes
+ updates to.
+
+ * WebProcess/WebProcess.messages.in: Added a message for changes preference value.
+
+ * WebProcess/com.apple.WebProcess.sb: We no longer need read access to com.apple.universalaccess.plist.
+
2011-11-07 Anders Carlsson <ander...@apple.com>
Add TiledCoreAnimationDrawingArea stub classes
Modified: trunk/Source/WebKit2/Shared/WebProcessCreationParameters.cpp (99482 => 99483)
--- trunk/Source/WebKit2/Shared/WebProcessCreationParameters.cpp 2011-11-07 22:46:35 UTC (rev 99482)
+++ trunk/Source/WebKit2/Shared/WebProcessCreationParameters.cpp 2011-11-07 22:51:59 UTC (rev 99483)
@@ -69,6 +69,7 @@
#endif
encoder->encode(languageCode);
encoder->encode(textCheckerState);
+ encoder->encode(fullKeyboardAccessEnabled);
encoder->encode(defaultRequestTimeoutInterval);
#if USE(CFURLSTORAGESESSIONS)
encoder->encode(uiProcessBundleIdentifier);
@@ -141,6 +142,8 @@
return false;
if (!decoder->decode(parameters.textCheckerState))
return false;
+ if (!decoder->decode(parameters.fullKeyboardAccessEnabled))
+ return false;
if (!decoder->decode(parameters.defaultRequestTimeoutInterval))
return false;
#if USE(CFURLSTORAGESESSIONS)
Modified: trunk/Source/WebKit2/Shared/WebProcessCreationParameters.h (99482 => 99483)
--- trunk/Source/WebKit2/Shared/WebProcessCreationParameters.h 2011-11-07 22:46:35 UTC (rev 99482)
+++ trunk/Source/WebKit2/Shared/WebProcessCreationParameters.h 2011-11-07 22:51:59 UTC (rev 99483)
@@ -81,6 +81,8 @@
TextCheckerState textCheckerState;
+ bool fullKeyboardAccessEnabled;
+
double defaultRequestTimeoutInterval;
#if USE(CFURLSTORAGESESSIONS)
Modified: trunk/Source/WebKit2/UIProcess/WebContext.cpp (99482 => 99483)
--- trunk/Source/WebKit2/UIProcess/WebContext.cpp 2011-11-07 22:46:35 UTC (rev 99482)
+++ trunk/Source/WebKit2/UIProcess/WebContext.cpp 2011-11-07 22:51:59 UTC (rev 99483)
@@ -224,6 +224,11 @@
sendToAllProcesses(Messages::WebProcess::LanguageChanged(defaultLanguage()));
}
+void WebContext::fullKeyboardAccessModeChanged(bool fullKeyboardAccessEnabled)
+{
+ sendToAllProcesses(Messages::WebProcess::FullKeyboardAccessModeChanged(fullKeyboardAccessEnabled));
+}
+
void WebContext::ensureWebProcess()
{
if (m_process)
@@ -262,6 +267,8 @@
parameters.textCheckerState = TextChecker::state();
+ parameters.fullKeyboardAccessEnabled = WebProcessProxy::fullKeyboardAccessEnabled();
+
parameters.defaultRequestTimeoutInterval = WebURLRequest::defaultTimeoutInterval();
// Add any platform specific parameters
Modified: trunk/Source/WebKit2/UIProcess/WebContext.h (99482 => 99483)
--- trunk/Source/WebKit2/UIProcess/WebContext.h 2011-11-07 22:46:35 UTC (rev 99482)
+++ trunk/Source/WebKit2/UIProcess/WebContext.h 2011-11-07 22:51:59 UTC (rev 99483)
@@ -196,6 +196,8 @@
static bool omitPDFSupport();
#endif
+ void fullKeyboardAccessModeChanged(bool fullKeyboardAccessEnabled);
+
private:
WebContext(ProcessModel, const String& injectedBundlePath);
Modified: trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp (99482 => 99483)
--- trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp 2011-11-07 22:46:35 UTC (rev 99482)
+++ trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp 2011-11-07 22:51:59 UTC (rev 99483)
@@ -247,6 +247,13 @@
return false;
}
+#if !PLATFORM(MAC)
+bool WebProcessProxy::fullKeyboardAccessEnabled()
+{
+ return false;
+}
+#endif
+
void WebProcessProxy::addBackForwardItem(uint64_t itemID, const String& originalURL, const String& url, const String& title, const CoreIPC::DataReference& backForwardData)
{
MESSAGE_CHECK_URL(originalURL);
Modified: trunk/Source/WebKit2/UIProcess/WebProcessProxy.h (99482 => 99483)
--- trunk/Source/WebKit2/UIProcess/WebProcessProxy.h 2011-11-07 22:46:35 UTC (rev 99482)
+++ trunk/Source/WebKit2/UIProcess/WebProcessProxy.h 2011-11-07 22:51:59 UTC (rev 99483)
@@ -110,6 +110,8 @@
bool checkURLReceivedFromWebProcess(const String&);
bool checkURLReceivedFromWebProcess(const WebCore::KURL&);
+ static bool fullKeyboardAccessEnabled();
+
// FIXME: This variant of send is deprecated. All clients should move to an overload that take a message type.
template<typename E, typename T> bool deprecatedSend(E messageID, uint64_t destinationID, const T& arguments);
Copied: trunk/Source/WebKit2/UIProcess/mac/WKFullKeyboardAccessWatcher.h (from rev 99432, trunk/Source/WebKit2/WebProcess/mac/WKFullKeyboardAccessWatcher.h) (0 => 99483)
--- trunk/Source/WebKit2/UIProcess/mac/WKFullKeyboardAccessWatcher.h (rev 0)
+++ trunk/Source/WebKit2/UIProcess/mac/WKFullKeyboardAccessWatcher.h 2011-11-07 22:51:59 UTC (rev 99483)
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2011 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef WKFullKeyboardAccessWatcher_h
+#define WKFullKeyboardAccessWatcher_h
+
+#import <Cocoa/Cocoa.h>
+
+@interface WKFullKeyboardAccessWatcher : NSObject {
+@private
+ BOOL fullKeyboardAccessEnabled;
+}
+
++ (BOOL)fullKeyboardAccessEnabled;
+
+@end;
+
+#endif // WKFullKeyboardAccessWatcher_h
Copied: trunk/Source/WebKit2/UIProcess/mac/WKFullKeyboardAccessWatcher.mm (from rev 99432, trunk/Source/WebKit2/WebProcess/mac/WKFullKeyboardAccessWatcher.mm) (0 => 99483)
--- trunk/Source/WebKit2/UIProcess/mac/WKFullKeyboardAccessWatcher.mm (rev 0)
+++ trunk/Source/WebKit2/UIProcess/mac/WKFullKeyboardAccessWatcher.mm 2011-11-07 22:51:59 UTC (rev 99483)
@@ -0,0 +1,86 @@
+/*
+ * Copyright (C) 2011 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import "config.h"
+#import "WKFullKeyboardAccessWatcher.h"
+
+#import "WebContext.h"
+
+NSString * const KeyboardUIModeDidChangeNotification = @"com.apple.KeyboardUIModeDidChange";
+const CFStringRef AppleKeyboardUIMode = CFSTR("AppleKeyboardUIMode");
+const CFStringRef UniversalAccessDomain = CFSTR("com.apple.universalaccess");
+
+using namespace WebKit;
+
+@implementation WKFullKeyboardAccessWatcher
+
+- (void)notifyAllWebContexts
+{
+ const Vector<WebContext*>& contexts = WebContext::allContexts();
+ for (size_t i = 0; i < contexts.size(); ++i)
+ contexts[i]->fullKeyboardAccessModeChanged(fullKeyboardAccessEnabled);
+}
+
+- (void)retrieveKeyboardUIModeFromPreferences:(NSNotification *)notification
+{
+ BOOL oldValue = fullKeyboardAccessEnabled;
+
+ CFPreferencesAppSynchronize(UniversalAccessDomain);
+
+ Boolean keyExistsAndHasValidFormat;
+ int mode = CFPreferencesGetAppIntegerValue(AppleKeyboardUIMode, UniversalAccessDomain, &keyExistsAndHasValidFormat);
+ if (keyExistsAndHasValidFormat) {
+ // The keyboard access mode is reported by two bits:
+ // Bit 0 is set if feature is on
+ // Bit 1 is set if full keyboard access works for any control, not just text boxes and lists.
+ fullKeyboardAccessEnabled = (mode & 0x2);
+ }
+
+ if (fullKeyboardAccessEnabled != oldValue)
+ [self notifyAllWebContexts];
+}
+
+- (id)init
+{
+ self = [super init];
+ if (!self)
+ return nil;
+
+ [self retrieveKeyboardUIModeFromPreferences:nil];
+
+ [[NSDistributedNotificationCenter defaultCenter]
+ addObserver:self selector:@selector(retrieveKeyboardUIModeFromPreferences:)
+ name:KeyboardUIModeDidChangeNotification object:nil];
+
+ return self;
+}
+
++ (BOOL)fullKeyboardAccessEnabled
+{
+ static WKFullKeyboardAccessWatcher *watcher = [[WKFullKeyboardAccessWatcher alloc] init];
+ return watcher->fullKeyboardAccessEnabled;
+}
+
+@end
Modified: trunk/Source/WebKit2/UIProcess/mac/WebProcessProxyMac.mm (99482 => 99483)
--- trunk/Source/WebKit2/UIProcess/mac/WebProcessProxyMac.mm 2011-11-07 22:46:35 UTC (rev 99482)
+++ trunk/Source/WebKit2/UIProcess/mac/WebProcessProxyMac.mm 2011-11-07 22:51:59 UTC (rev 99483)
@@ -30,6 +30,7 @@
#import "SecItemResponseData.h"
#import "SecKeychainItemRequestData.h"
#import "SecKeychainItemResponseData.h"
+#import "WKFullKeyboardAccessWatcher.h"
#import <Security/SecItem.h>
namespace WebKit {
@@ -107,4 +108,9 @@
response = resultCode;
}
+bool WebProcessProxy::fullKeyboardAccessEnabled()
+{
+ return [WKFullKeyboardAccessWatcher fullKeyboardAccessEnabled];
+}
+
} // namespace WebKit
Modified: trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj (99482 => 99483)
--- trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj 2011-11-07 22:46:35 UTC (rev 99482)
+++ trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj 2011-11-07 22:51:59 UTC (rev 99483)
@@ -842,8 +842,8 @@
E199875E142C045400BB2DE7 /* BuiltInPDFView.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E199875C142BFC9700BB2DE7 /* BuiltInPDFView.cpp */; };
E1A31732134CEA6C007C9A4F /* AttributedString.h in Headers */ = {isa = PBXBuildFile; fileRef = E1A31731134CEA6C007C9A4F /* AttributedString.h */; };
E1A31735134CEA80007C9A4F /* AttributedString.mm in Sources */ = {isa = PBXBuildFile; fileRef = E1A31734134CEA80007C9A4F /* AttributedString.mm */; };
- E1BB16A413201B9B00F49431 /* WKFullKeyboardAccessWatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = E1BB1688132018BA00F49431 /* WKFullKeyboardAccessWatcher.h */; };
- E1BB16A513201B9B00F49431 /* WKFullKeyboardAccessWatcher.mm in Sources */ = {isa = PBXBuildFile; fileRef = E1BB1689132018BA00F49431 /* WKFullKeyboardAccessWatcher.mm */; };
+ E1AEA22F14687BDB00804569 /* WKFullKeyboardAccessWatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = E1AEA22D14687BDB00804569 /* WKFullKeyboardAccessWatcher.h */; };
+ E1AEA23014687BDB00804569 /* WKFullKeyboardAccessWatcher.mm in Sources */ = {isa = PBXBuildFile; fileRef = E1AEA22E14687BDB00804569 /* WKFullKeyboardAccessWatcher.mm */; };
E1CC1B9012D7EADF00625838 /* PrintInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = E1CC1B8E12D7EADF00625838 /* PrintInfo.h */; };
E1CC1B9112D7EADF00625838 /* PrintInfoMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = E1CC1B8F12D7EADF00625838 /* PrintInfoMac.mm */; };
E1EE53E311F8CFC000CCBEE4 /* InjectedBundlePageEditorClient.h in Headers */ = {isa = PBXBuildFile; fileRef = E1EE53DC11F8CF9F00CCBEE4 /* InjectedBundlePageEditorClient.h */; };
@@ -1835,8 +1835,8 @@
E199875C142BFC9700BB2DE7 /* BuiltInPDFView.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = BuiltInPDFView.cpp; path = PDF/BuiltInPDFView.cpp; sourceTree = "<group>"; };
E1A31731134CEA6C007C9A4F /* AttributedString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AttributedString.h; sourceTree = "<group>"; };
E1A31734134CEA80007C9A4F /* AttributedString.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = AttributedString.mm; sourceTree = "<group>"; };
- E1BB1688132018BA00F49431 /* WKFullKeyboardAccessWatcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKFullKeyboardAccessWatcher.h; sourceTree = "<group>"; };
- E1BB1689132018BA00F49431 /* WKFullKeyboardAccessWatcher.mm */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 4; path = WKFullKeyboardAccessWatcher.mm; sourceTree = "<group>"; };
+ E1AEA22D14687BDB00804569 /* WKFullKeyboardAccessWatcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKFullKeyboardAccessWatcher.h; sourceTree = "<group>"; };
+ E1AEA22E14687BDB00804569 /* WKFullKeyboardAccessWatcher.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKFullKeyboardAccessWatcher.mm; sourceTree = "<group>"; };
E1CC1B8E12D7EADF00625838 /* PrintInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PrintInfo.h; sourceTree = "<group>"; };
E1CC1B8F12D7EADF00625838 /* PrintInfoMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = PrintInfoMac.mm; sourceTree = "<group>"; };
E1EE53DC11F8CF9F00CCBEE4 /* InjectedBundlePageEditorClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InjectedBundlePageEditorClient.h; sourceTree = "<group>"; };
@@ -2093,8 +2093,6 @@
1A6FA01D11E1526300DB1371 /* WebProcessMainMac.mm */,
511F8A77138B460900A95F44 /* WebProcessShim.h */,
511F8A78138B460900A95F44 /* WebProcessShim.mm */,
- E1BB1688132018BA00F49431 /* WKFullKeyboardAccessWatcher.h */,
- E1BB1689132018BA00F49431 /* WKFullKeyboardAccessWatcher.mm */,
);
path = mac;
sourceTree = "<group>";
@@ -3252,6 +3250,8 @@
BC5750961268F3C6006F0F12 /* WebPopupMenuProxyMac.mm */,
BC84EB1712A7100C0083F2DA /* WebPreferencesMac.mm */,
51D130571382F10500351EDD /* WebProcessProxyMac.mm */,
+ E1AEA22D14687BDB00804569 /* WKFullKeyboardAccessWatcher.h */,
+ E1AEA22E14687BDB00804569 /* WKFullKeyboardAccessWatcher.mm */,
CDCA85C7132ABA4E00E961DF /* WKFullScreenWindowController.h */,
CDCA85C6132ABA4E00E961DF /* WKFullScreenWindowController.mm */,
);
@@ -3893,7 +3893,6 @@
BCE81D8D1319F7EF00241910 /* FontInfo.h in Headers */,
BCE81D99131AE02100241910 /* DictionaryPopupInfo.h in Headers */,
37C4E9F6131C6E7E0029BD5A /* config.h in Headers */,
- E1BB16A413201B9B00F49431 /* WKFullKeyboardAccessWatcher.h in Headers */,
33AA1067131F060000D4A575 /* WebCookieManagerProxyClient.h in Headers */,
CDCA85C9132ABA4E00E961DF /* WKFullScreenWindowController.h in Headers */,
511B24A7132E095700065A0C /* WebIconDatabaseProxy.h in Headers */,
@@ -3939,6 +3938,7 @@
BCBAACF41452324F0053F82F /* WKBrowsingContextGroup.h in Headers */,
BCBAACF61452324F0053F82F /* WKBrowsingContextGroupInternal.h in Headers */,
BCBAAD0B14560A430053F82F /* WKBrowsingContextLoadDelegate.h in Headers */,
+ E1AEA22F14687BDB00804569 /* WKFullKeyboardAccessWatcher.h in Headers */,
1AAF263914687C39004A1E8A /* TiledCoreAnimationDrawingArea.h in Headers */,
1AF05D8714688348008B1E81 /* TiledCoreAnimationDrawingAreaProxy.h in Headers */,
);
@@ -4574,7 +4574,6 @@
3309345A1315B9980097A7BC /* WKCookieManager.cpp in Sources */,
BCE81D8C1319F7EF00241910 /* FontInfo.cpp in Sources */,
BCE81D98131AE02100241910 /* DictionaryPopupInfo.cpp in Sources */,
- E1BB16A513201B9B00F49431 /* WKFullKeyboardAccessWatcher.mm in Sources */,
33AA1066131F060000D4A575 /* WebCookieManagerProxyClient.cpp in Sources */,
CD73BA47131ACC9A00EEDED2 /* WebFullScreenManagerProxyMessageReceiver.cpp in Sources */,
CD73BA4E131ACDB700EEDED2 /* WebFullScreenManagerMessageReceiver.cpp in Sources */,
@@ -4633,6 +4632,7 @@
BCBAAC72144E61990053F82F /* WKBrowsingContextController.mm in Sources */,
BCBAACEC145225E30053F82F /* WKProcessGroup.mm in Sources */,
BCBAACF51452324F0053F82F /* WKBrowsingContextGroup.mm in Sources */,
+ E1AEA23014687BDB00804569 /* WKFullKeyboardAccessWatcher.mm in Sources */,
1AAF263814687C39004A1E8A /* TiledCoreAnimationDrawingArea.mm in Sources */,
1AF05D8614688348008B1E81 /* TiledCoreAnimationDrawingAreaProxy.mm in Sources */,
);
Modified: trunk/Source/WebKit2/WebProcess/WebProcess.cpp (99482 => 99483)
--- trunk/Source/WebKit2/WebProcess/WebProcess.cpp 2011-11-07 22:46:35 UTC (rev 99482)
+++ trunk/Source/WebKit2/WebProcess/WebProcess.cpp 2011-11-07 22:51:59 UTC (rev 99483)
@@ -134,6 +134,7 @@
#if USE(ACCELERATED_COMPOSITING) && PLATFORM(MAC)
, m_compositingRenderServerPort(MACH_PORT_NULL)
#endif
+ , m_fullKeyboardAccessEnabled(false)
#if PLATFORM(QT)
, m_networkAccessManager(0)
#endif
@@ -287,6 +288,11 @@
overrideDefaultLanguage(language);
}
+void WebProcess::fullKeyboardAccessModeChanged(bool fullKeyboardAccessEnabled)
+{
+ m_fullKeyboardAccessEnabled = fullKeyboardAccessEnabled;
+}
+
void WebProcess::setVisitedLinkTable(const SharedMemory::Handle& handle)
{
RefPtr<SharedMemory> sharedMemory = SharedMemory::create(handle, SharedMemory::ReadOnly);
@@ -332,13 +338,6 @@
m_connection->send(Messages::WebContext::AddVisitedLinkHash(linkHash), 0);
}
-#if !PLATFORM(MAC)
-bool WebProcess::fullKeyboardAccessEnabled()
-{
- return false;
-}
-#endif
-
void WebProcess::setCacheModel(uint32_t cm)
{
CacheModel cacheModel = static_cast<CacheModel>(cm);
Modified: trunk/Source/WebKit2/WebProcess/WebProcess.h (99482 => 99483)
--- trunk/Source/WebKit2/WebProcess/WebProcess.h 2011-11-07 22:46:35 UTC (rev 99482)
+++ trunk/Source/WebKit2/WebProcess/WebProcess.h 2011-11-07 22:51:59 UTC (rev 99483)
@@ -96,7 +96,7 @@
void addVisitedLink(WebCore::LinkHash);
bool isLinkVisited(WebCore::LinkHash) const;
- bool fullKeyboardAccessEnabled();
+ bool fullKeyboardAccessEnabled() const { return m_fullKeyboardAccessEnabled; }
WebFrame* webFrame(uint64_t) const;
void addWebFrame(uint64_t, WebFrame*);
@@ -143,6 +143,7 @@
void setAlwaysUsesComplexTextCodePath(bool);
void setShouldUseFontSmoothing(bool);
void languageChanged(const String&) const;
+ void fullKeyboardAccessModeChanged(bool fullKeyboardAccessEnabled);
#if PLATFORM(WIN)
void setShouldPaintNativeControls(bool);
#endif
@@ -228,6 +229,8 @@
pid_t m_presenterApplicationPid;
#endif
+ bool m_fullKeyboardAccessEnabled;
+
#if PLATFORM(QT)
QNetworkAccessManager* m_networkAccessManager;
#endif
Modified: trunk/Source/WebKit2/WebProcess/WebProcess.messages.in (99482 => 99483)
--- trunk/Source/WebKit2/WebProcess/WebProcess.messages.in 2011-11-07 22:46:35 UTC (rev 99482)
+++ trunk/Source/WebKit2/WebProcess/WebProcess.messages.in 2011-11-07 22:51:59 UTC (rev 99483)
@@ -42,6 +42,7 @@
SetAlwaysUsesComplexTextCodePath(bool alwaysUseComplexText)
SetShouldUseFontSmoothing(bool useFontSmoothing)
LanguageChanged(WTF::String language)
+ FullKeyboardAccessModeChanged(bool fullKeyboardAccessEnabled)
#if PLATFORM(WIN)
SetShouldPaintNativeControls(bool shouldPaintNativeControls)
#endif
Modified: trunk/Source/WebKit2/WebProcess/com.apple.WebProcess.sb (99482 => 99483)
--- trunk/Source/WebKit2/WebProcess/com.apple.WebProcess.sb 2011-11-07 22:46:35 UTC (rev 99482)
+++ trunk/Source/WebKit2/WebProcess/com.apple.WebProcess.sb 2011-11-07 22:51:59 UTC (rev 99483)
@@ -65,9 +65,6 @@
(subpath "/Library/Video/Plug-Ins")
(subpath "/Library/QuickTime")
- ;; FIXME: This should be removed when <rdar://problem/9237619> is fixed.
- (home-literal "/Library/Preferences/com.apple.universalaccess.plist")
-
;; FIXME: This should be removed when <rdar://problem/9276253> is fixed.
(home-subpath "/Library/Keyboard Layouts")
Deleted: trunk/Source/WebKit2/WebProcess/mac/WKFullKeyboardAccessWatcher.h (99482 => 99483)
--- trunk/Source/WebKit2/WebProcess/mac/WKFullKeyboardAccessWatcher.h 2011-11-07 22:46:35 UTC (rev 99482)
+++ trunk/Source/WebKit2/WebProcess/mac/WKFullKeyboardAccessWatcher.h 2011-11-07 22:51:59 UTC (rev 99483)
@@ -1,40 +0,0 @@
-/*
- * Copyright (C) 2011 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef WKFullKeyboardAccessWatcher_h
-#define WKFullKeyboardAccessWatcher_h
-
-#import <Cocoa/Cocoa.h>
-
-@interface WKFullKeyboardAccessWatcher : NSObject {
-@private
- BOOL fullKeyboardAccessEnabled;
-}
-
-+ (BOOL)fullKeyboardAccessEnabled;
-
-@end;
-
-#endif // WKFullKeyboardAccessWatcher_h
Deleted: trunk/Source/WebKit2/WebProcess/mac/WKFullKeyboardAccessWatcher.mm (99482 => 99483)
--- trunk/Source/WebKit2/WebProcess/mac/WKFullKeyboardAccessWatcher.mm 2011-11-07 22:46:35 UTC (rev 99482)
+++ trunk/Source/WebKit2/WebProcess/mac/WKFullKeyboardAccessWatcher.mm 2011-11-07 22:51:59 UTC (rev 99483)
@@ -1,70 +0,0 @@
-/*
- * Copyright (C) 2011 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#import "config.h"
-#import "WKFullKeyboardAccessWatcher.h"
-
-NSString * const KeyboardUIModeDidChangeNotification = @"com.apple.KeyboardUIModeDidChange";
-const CFStringRef AppleKeyboardUIMode = CFSTR("AppleKeyboardUIMode");
-const CFStringRef UniversalAccessDomain = CFSTR("com.apple.universalaccess");
-
-@implementation WKFullKeyboardAccessWatcher
-
-- (void)retrieveKeyboardUIModeFromPreferences:(NSNotification *)notification
-{
- CFPreferencesAppSynchronize(UniversalAccessDomain);
-
- Boolean keyExistsAndHasValidFormat;
- int mode = CFPreferencesGetAppIntegerValue(AppleKeyboardUIMode, UniversalAccessDomain, &keyExistsAndHasValidFormat);
- if (keyExistsAndHasValidFormat) {
- // The keyboard access mode is reported by two bits:
- // Bit 0 is set if feature is on
- // Bit 1 is set if full keyboard access works for any control, not just text boxes and lists.
- fullKeyboardAccessEnabled = (mode & 0x2);
- }
-}
-
-- (id)init
-{
- self = [super init];
- if (!self)
- return nil;
-
- [self retrieveKeyboardUIModeFromPreferences:nil];
-
- [[NSDistributedNotificationCenter defaultCenter]
- addObserver:self selector:@selector(retrieveKeyboardUIModeFromPreferences:)
- name:KeyboardUIModeDidChangeNotification object:nil];
-
- return self;
-}
-
-+ (BOOL)fullKeyboardAccessEnabled
-{
- static WKFullKeyboardAccessWatcher *watcher = [[WKFullKeyboardAccessWatcher alloc] init];
- return watcher->fullKeyboardAccessEnabled;
-}
-
-@end
Modified: trunk/Source/WebKit2/WebProcess/mac/WebProcessMac.mm (99482 => 99483)
--- trunk/Source/WebKit2/WebProcess/mac/WebProcessMac.mm 2011-11-07 22:46:35 UTC (rev 99482)
+++ trunk/Source/WebKit2/WebProcess/mac/WebProcessMac.mm 2011-11-07 22:51:59 UTC (rev 99483)
@@ -133,11 +133,6 @@
[[NSURLCache sharedURLCache] removeAllCachedResponses];
}
-bool WebProcess::fullKeyboardAccessEnabled()
-{
- return [WKFullKeyboardAccessWatcher fullKeyboardAccessEnabled];
-}
-
#if ENABLE(WEB_PROCESS_SANDBOX)
static void appendSandboxParameterPathInternal(Vector<const char*>& vector, const char* name, const char* path)
{