OLD | NEW |
| (Empty) |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #include "base/command_line.h" | |
6 #include "base/logging.h" | |
7 #include "base/mac/bundle_locations.h" | |
8 #include "base/path_service.h" | |
9 #include "content/public/common/content_switches.h" | |
10 #include "content/shell/app/webkit_test_platform_support.h" | |
11 | |
12 #include <AppKit/AppKit.h> | |
13 #include <Foundation/Foundation.h> | |
14 | |
15 namespace content { | |
16 | |
17 namespace { | |
18 | |
19 void SetDefaultsToLayoutTestValues(void) { | |
20 // So we can match the WebKit layout tests, we want to force a bunch of | |
21 // preferences that control appearance to match. | |
22 // (We want to do this as early as possible in application startup so | |
23 // the settings are in before any higher layers could cache values.) | |
24 | |
25 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; | |
26 // Do not set text-rendering prefs (AppleFontSmoothing, | |
27 // AppleAntiAliasingThreshold) here: Skia picks the right settings for this | |
28 // in layout test mode, see FontSkia.cpp in WebKit and | |
29 // SkFontHost_mac_coretext.cpp in skia. | |
30 const NSInteger kBlueTintedAppearance = 1; | |
31 [defaults setInteger:kBlueTintedAppearance | |
32 forKey:@"AppleAquaColorVariant"]; | |
33 [defaults setObject:@"0.709800 0.835300 1.000000" | |
34 forKey:@"AppleHighlightColor"]; | |
35 [defaults setObject:@"0.500000 0.500000 0.500000" | |
36 forKey:@"AppleOtherHighlightColor"]; | |
37 [defaults setObject:[NSArray arrayWithObject:@"en"] | |
38 forKey:@"AppleLanguages"]; | |
39 [defaults setBool:NO | |
40 forKey:@"AppleScrollAnimationEnabled"]; | |
41 [defaults setObject:@"Always" | |
42 forKey:@"AppleShowScrollBars"]; | |
43 } | |
44 | |
45 } // namespace | |
46 | |
47 bool CheckLayoutSystemDeps() { | |
48 return true; | |
49 } | |
50 | |
51 bool WebKitTestPlatformInitialize() { | |
52 | |
53 SetDefaultsToLayoutTestValues(); | |
54 | |
55 // Load font files in the resource folder. | |
56 static const char* const fontFileNames[] = { | |
57 "AHEM____.TTF", "ChromiumAATTest.ttf" | |
58 }; | |
59 | |
60 // mainBundle is Content Shell Helper.app. Go two levels up to find | |
61 // Content Shell.app. Due to DumpRenderTree injecting the font files into | |
62 // its direct dependents, it's not easily possible to put the ttf files into | |
63 // the helper's resource directory instead of the outer bundle's resource | |
64 // directory. | |
65 NSString* bundle = [base::mac::FrameworkBundle() bundlePath]; | |
66 bundle = [bundle stringByAppendingPathComponent:@"../.."]; | |
67 NSURL* resources_directory = [[NSBundle bundleWithPath:bundle] resourceURL]; | |
68 | |
69 NSMutableArray* font_urls = [NSMutableArray array]; | |
70 for (unsigned i = 0; i < arraysize(fontFileNames); ++i) { | |
71 NSURL* font_url = [resources_directory | |
72 URLByAppendingPathComponent:[NSString | |
73 stringWithUTF8String:fontFileNames[i]]]; | |
74 [font_urls addObject:[font_url absoluteURL]]; | |
75 } | |
76 | |
77 CFArrayRef errors = 0; | |
78 if (!CTFontManagerRegisterFontsForURLs((CFArrayRef)font_urls, | |
79 kCTFontManagerScopeProcess, | |
80 &errors)) { | |
81 DLOG(FATAL) << "Fail to activate fonts."; | |
82 CFRelease(errors); | |
83 } | |
84 | |
85 // Add <app bundle's parent dir>/plugins to the plugin path so we can load | |
86 // test plugins. | |
87 base::FilePath plugins_dir; | |
88 PathService::Get(base::DIR_EXE, &plugins_dir); | |
89 plugins_dir = plugins_dir.AppendASCII("../../../plugins"); | |
90 CommandLine& command_line = *CommandLine::ForCurrentProcess(); | |
91 command_line.AppendSwitchPath(switches::kExtraPluginDir, plugins_dir); | |
92 | |
93 return true; | |
94 } | |
95 | |
96 } // namespace | |
OLD | NEW |