| Index: webkit/tools/test_shell/test_shell_platform_delegate_mac.mm
|
| diff --git a/webkit/tools/test_shell/test_shell_platform_delegate_mac.mm b/webkit/tools/test_shell/test_shell_platform_delegate_mac.mm
|
| deleted file mode 100644
|
| index dc1b2210a64291a12ab02526d8749c5fd0cd68b4..0000000000000000000000000000000000000000
|
| --- a/webkit/tools/test_shell/test_shell_platform_delegate_mac.mm
|
| +++ /dev/null
|
| @@ -1,203 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "build/build_config.h"
|
| -
|
| -#include <Carbon/Carbon.h>
|
| -// #include <ApplicationServices/ApplicationServices.h>
|
| -#import <Cocoa/Cocoa.h>
|
| -#import <objc/objc-runtime.h>
|
| -#include <mach/task.h>
|
| -
|
| -#include "base/command_line.h"
|
| -#include "base/logging.h"
|
| -#include "base/message_pump_mac.h"
|
| -#import "base/test/mock_chrome_application_mac.h"
|
| -#include "webkit/tools/test_shell/test_shell.h"
|
| -#include "webkit/tools/test_shell/test_shell_platform_delegate.h"
|
| -#include "webkit/tools/test_shell/test_shell_switches.h"
|
| -
|
| -static NSAutoreleasePool *gTestShellAutoreleasePool = nil;
|
| -
|
| -static void SetDefaultsToLayoutTestValues(void) {
|
| - // So we can match the WebKit layout tests, we want to force a bunch of
|
| - // preferences that control appearance to match.
|
| - // (We want to do this as early as possible in application startup so
|
| - // the settings are in before any higher layers could cache values.)
|
| -
|
| - // This is inspired by resetDefaultsToConsistentValues() in
|
| - // WebKit/Tools/DumpRenderTree/mac/DumpRenderTree.mm .
|
| -
|
| - NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
|
| -
|
| - const NSInteger kMinFontSizeCGSmoothes = 4;
|
| - const NSInteger kNoFontSmoothing = 0;
|
| - const NSInteger kBlueTintedAppearance = 1;
|
| - [defaults setInteger:kMinFontSizeCGSmoothes
|
| - forKey:@"AppleAntiAliasingThreshold"];
|
| - [defaults setInteger:kNoFontSmoothing
|
| - forKey:@"AppleFontSmoothing"];
|
| - [defaults setInteger:kBlueTintedAppearance
|
| - forKey:@"AppleAquaColorVariant"];
|
| - [defaults setObject:@"0.709800 0.835300 1.000000"
|
| - forKey:@"AppleHighlightColor"];
|
| - [defaults setObject:@"0.500000 0.500000 0.500000"
|
| - forKey:@"AppleOtherHighlightColor"];
|
| - [defaults setObject:[NSArray arrayWithObject:@"en"]
|
| - forKey:@"AppleLanguages"];
|
| -
|
| - // AppKit pulls scrollbar style from NSUserDefaults. HIToolbox uses
|
| - // CFPreferences, but AnyApplication, so we set it, force it to load, and
|
| - // then reset the pref to what it was (HIToolbox will cache what it loaded).
|
| - [defaults setObject:@"DoubleMax" forKey:@"AppleScrollBarVariant"];
|
| - CFTypeRef initialValue =
|
| - CFPreferencesCopyValue(CFSTR("AppleScrollBarVariant"),
|
| - kCFPreferencesAnyApplication,
|
| - kCFPreferencesCurrentUser,
|
| - kCFPreferencesAnyHost);
|
| - CFPreferencesSetValue(CFSTR("AppleScrollBarVariant"),
|
| - CFSTR("DoubleMax"),
|
| - kCFPreferencesAnyApplication,
|
| - kCFPreferencesCurrentUser,
|
| - kCFPreferencesAnyHost);
|
| -#ifndef __LP64__
|
| - // Make HIToolbox read from CFPreferences.
|
| - // HIToolbox is not available in 64-bit. DumpRenderTree comments out this
|
| - // call with a note to rdar://6347388 . No clue, sorry.
|
| - ThemeScrollBarArrowStyle style;
|
| - GetThemeScrollBarArrowStyle(&style);
|
| -#endif // __LP64__
|
| - if (initialValue) {
|
| - // Reset the preference to what it was
|
| - CFPreferencesSetValue(CFSTR("AppleScrollBarVariant"),
|
| - initialValue,
|
| - kCFPreferencesAnyApplication,
|
| - kCFPreferencesCurrentUser,
|
| - kCFPreferencesAnyHost);
|
| - CFRelease(initialValue);
|
| - }
|
| -}
|
| -
|
| -static void ClearAnyDefaultsForLayoutTests(void) {
|
| - // Not running a test, clear the keys so the TestShell looks right to the
|
| - // running user.
|
| -
|
| - NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
|
| -
|
| - [defaults removeObjectForKey:@"AppleAntiAliasingThreshold"];
|
| - [defaults removeObjectForKey:@"AppleFontSmoothing"];
|
| - [defaults removeObjectForKey:@"AppleAquaColorVariant"];
|
| - [defaults removeObjectForKey:@"AppleHighlightColor"];
|
| - [defaults removeObjectForKey:@"AppleOtherHighlightColor"];
|
| - [defaults removeObjectForKey:@"AppleLanguages"];
|
| - [defaults removeObjectForKey:@"AppleScrollBarVariant"];
|
| -}
|
| -
|
| -#if OBJC_API_VERSION == 2
|
| -static void SwizzleAllMethods(Class imposter, Class original) {
|
| - unsigned int imposterMethodCount = 0;
|
| - Method* imposterMethods =
|
| - class_copyMethodList(imposter, &imposterMethodCount);
|
| -
|
| - unsigned int originalMethodCount = 0;
|
| - Method* originalMethods =
|
| - class_copyMethodList(original, &originalMethodCount);
|
| -
|
| - for (unsigned int i = 0; i < imposterMethodCount; i++) {
|
| - SEL imposterMethodName = method_getName(imposterMethods[i]);
|
| -
|
| - // Attempt to add the method to the original class. If it fails, the method
|
| - // already exists and we should instead exchange the implementations.
|
| - if (class_addMethod(original,
|
| - imposterMethodName,
|
| - method_getImplementation(originalMethods[i]),
|
| - method_getTypeEncoding(originalMethods[i]))) {
|
| - continue;
|
| - }
|
| -
|
| - unsigned int j = 0;
|
| - for (; j < originalMethodCount; j++) {
|
| - SEL originalMethodName = method_getName(originalMethods[j]);
|
| - if (sel_isEqual(imposterMethodName, originalMethodName)) {
|
| - break;
|
| - }
|
| - }
|
| -
|
| - // If class_addMethod failed above then the method must exist on the
|
| - // original class.
|
| - DCHECK(j < originalMethodCount) << "method wasn't found?";
|
| - method_exchangeImplementations(imposterMethods[i], originalMethods[j]);
|
| - }
|
| -
|
| - if (imposterMethods) {
|
| - free(imposterMethods);
|
| - }
|
| - if (originalMethods) {
|
| - free(originalMethods);
|
| - }
|
| -}
|
| -#endif
|
| -
|
| -static void SwizzleNSPasteboard(void) {
|
| - // We replace NSPaseboard w/ the shim (from WebKit) that avoids having
|
| - // sideeffects w/ whatever the user does at the same time.
|
| -
|
| - Class imposterClass = objc_getClass("DumpRenderTreePasteboard");
|
| - Class originalClass = objc_getClass("NSPasteboard");
|
| -#if OBJC_API_VERSION == 0
|
| - class_poseAs(imposterClass, originalClass);
|
| -#else
|
| - // Swizzle instance methods...
|
| - SwizzleAllMethods(imposterClass, originalClass);
|
| - // and then class methods.
|
| - SwizzleAllMethods(object_getClass(imposterClass),
|
| - object_getClass(originalClass));
|
| -#endif
|
| -}
|
| -
|
| -TestShellPlatformDelegate::TestShellPlatformDelegate(
|
| - const CommandLine &command_line)
|
| - : command_line_(command_line) {
|
| - gTestShellAutoreleasePool = [[NSAutoreleasePool alloc] init];
|
| - // Force AppKit to init itself, but don't start the runloop yet
|
| - [MockCrApp sharedApplication];
|
| - [NSBundle loadNibNamed:@"MainMenu" owner:NSApp];
|
| -}
|
| -
|
| -TestShellPlatformDelegate::~TestShellPlatformDelegate() {
|
| - [gTestShellAutoreleasePool drain];
|
| -}
|
| -
|
| -bool TestShellPlatformDelegate::CheckLayoutTestSystemDependencies() {
|
| - return true;
|
| -}
|
| -
|
| -void TestShellPlatformDelegate::InitializeGUI() {
|
| - // Make sure any settings from a previous layout run are cleared
|
| - ClearAnyDefaultsForLayoutTests();
|
| -}
|
| -
|
| -void TestShellPlatformDelegate::PreflightArgs(int *argc, char ***argv) {
|
| -}
|
| -
|
| -void TestShellPlatformDelegate::SetWindowPositionForRecording(TestShell *) {
|
| -}
|
| -
|
| -void TestShellPlatformDelegate::SelectUnifiedTheme() {
|
| - SetDefaultsToLayoutTestValues();
|
| - SwizzleNSPasteboard();
|
| -}
|
| -
|
| -void TestShellPlatformDelegate::SuppressErrorReporting() {
|
| - const CommandLine& parsed_command_line = *CommandLine::ForCurrentProcess();
|
| -
|
| - // If we die during tests, we don't want to be spamming the user's crash
|
| - // reporter. Set our exception port to null and add signal handlers.
|
| - // Both of these are necessary to avoid the crash reporter. Although, we do
|
| - // still seem to be missing some cases.
|
| - if (!parsed_command_line.HasSwitch(test_shell::kGDB)) {
|
| - task_set_exception_ports(mach_task_self(), EXC_MASK_ALL, MACH_PORT_NULL,
|
| - EXCEPTION_DEFAULT, THREAD_STATE_NONE);
|
| - }
|
| -}
|
|
|