diff options
author | Steve Block <steveblock@google.com> | 2011-05-25 19:08:45 +0100 |
---|---|---|
committer | Steve Block <steveblock@google.com> | 2011-06-08 13:51:31 +0100 |
commit | 2bde8e466a4451c7319e3a072d118917957d6554 (patch) | |
tree | 28f4a1b869a513e565c7760d0e6a06e7cf1fe95a /Source/WebKit2/WebProcess/mac/WebProcessMac.mm | |
parent | 6939c99b71d9372d14a0c74a772108052e8c48c8 (diff) | |
download | external_webkit-2bde8e466a4451c7319e3a072d118917957d6554.zip external_webkit-2bde8e466a4451c7319e3a072d118917957d6554.tar.gz external_webkit-2bde8e466a4451c7319e3a072d118917957d6554.tar.bz2 |
Merge WebKit at r82507: Initial merge by git
Change-Id: I60ce9d780725b58b45e54165733a8ffee23b683e
Diffstat (limited to 'Source/WebKit2/WebProcess/mac/WebProcessMac.mm')
-rw-r--r-- | Source/WebKit2/WebProcess/mac/WebProcessMac.mm | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/Source/WebKit2/WebProcess/mac/WebProcessMac.mm b/Source/WebKit2/WebProcess/mac/WebProcessMac.mm index 92b36b8..88ef834 100644 --- a/Source/WebKit2/WebProcess/mac/WebProcessMac.mm +++ b/Source/WebKit2/WebProcess/mac/WebProcessMac.mm @@ -28,6 +28,7 @@ #import "FullKeyboardAccessWatcher.h" #import "SandboxExtension.h" +#import "WebPage.h" #import "WebProcessCreationParameters.h" #import <WebCore/MemoryCache.h> #import <WebCore/PageCache.h> @@ -37,6 +38,8 @@ #import <mach/host_info.h> #import <mach/mach.h> #import <mach/mach_error.h> +#import <objc/runtime.h> +#import <WebCore/LocalizedStrings.h> #if ENABLE(WEB_PROCESS_SANDBOX) #import <sandbox.h> @@ -106,8 +109,10 @@ void WebProcess::platformSetCacheModel(CacheModel cacheModel) [nsurlCache setDiskCapacity:max<unsigned long>(urlCacheDiskCapacity, [nsurlCache diskCapacity])]; // Don't shrink a big disk cache, since that would cause churn. } -void WebProcess::platformClearResourceCaches() +void WebProcess::platformClearResourceCaches(ResourceCachesToClear cachesToClear) { + if (cachesToClear == InMemoryResourceCachesOnly) + return; [[NSURLCache sharedURLCache] removeAllCachedResponses]; } @@ -152,6 +157,7 @@ static void initializeSandbox(const WebProcessCreationParameters& parameters) appendSandboxParameterConfPath(sandboxParameters, "DARWIN_USER_TEMP_DIR", _CS_DARWIN_USER_TEMP_DIR); appendSandboxParameterConfPath(sandboxParameters, "DARWIN_USER_CACHE_DIR", _CS_DARWIN_USER_CACHE_DIR); appendSandboxParameterPath(sandboxParameters, "WEBKIT_DATABASE_DIR", [(NSString *)parameters.databaseDirectory fileSystemRepresentation]); + appendSandboxParameterPath(sandboxParameters, "WEBKIT_LOCALSTORAGE_DIR", [(NSString *)parameters.localStorageDirectory fileSystemRepresentation]); appendSandboxParameterPath(sandboxParameters, "NSURL_CACHE_DIR", parameters.nsURLCachePath.data()); appendSandboxParameterPath(sandboxParameters, "UI_PROCESS_BUNDLE_RESOURCE_DIR", parameters.uiProcessBundleResourcePath.data()); sandboxParameters.append(static_cast<const char*>(0)); @@ -171,13 +177,23 @@ static void initializeSandbox(const WebProcessCreationParameters& parameters) #endif } +static id NSApplicationAccessibilityFocusedUIElement(NSApplication*, SEL) +{ + WebPage* page = WebProcess::shared().focusedWebPage(); + if (!page || !page->accessibilityRemoteObject()) + return 0; + + return [page->accessibilityRemoteObject() accessibilityFocusedUIElement]; +} + void WebProcess::platformInitializeWebProcess(const WebProcessCreationParameters& parameters, CoreIPC::ArgumentDecoder*) { + [[NSFileManager defaultManager] changeCurrentDirectoryPath:[[NSBundle mainBundle] bundlePath]]; + initializeSandbox(parameters); if (!parameters.parentProcessName.isNull()) { - // FIXME (WebKit2) <rdar://problem/8728860> WebKit2 needs to be localized - NSString *applicationName = [NSString stringWithFormat:@"%@ Web Content", (NSString *)parameters.parentProcessName]; + NSString *applicationName = [NSString stringWithFormat:UI_STRING("%@ Web Content", "Visible name of the web process. The argument is the application name."), (NSString *)parameters.parentProcessName]; WKSetVisibleApplicationName((CFStringRef)applicationName); } @@ -191,6 +207,11 @@ void WebProcess::platformInitializeWebProcess(const WebProcessCreationParameters } m_compositingRenderServerPort = parameters.acceleratedCompositingPort.port(); + + // rdar://9118639 accessibilityFocusedUIElement in NSApplication defaults to use the keyWindow. Since there's + // no window in WK2, NSApplication needs to use the focused page's focused element. + Method methodToPatch = class_getInstanceMethod([NSApplication class], @selector(accessibilityFocusedUIElement)); + method_setImplementation(methodToPatch, (IMP)NSApplicationAccessibilityFocusedUIElement); } void WebProcess::platformTerminate() |