Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(38)

Side by Side Diff: content/shell/browser/shell_content_browser_client.cc

Issue 231763003: Support sideloaded fonts via command line option for blink layout_tests (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: guard for xp Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/shell/browser/shell_content_browser_client.h" 5 #include "content/shell/browser/shell_content_browser_client.h"
6 6
7 #include "base/base_switches.h" 7 #include "base/base_switches.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/file_util.h" 9 #include "base/file_util.h"
10 #include "base/files/file.h" 10 #include "base/files/file.h"
11 #include "base/path_service.h" 11 #include "base/path_service.h"
12 #include "base/strings/utf_string_conversions.h"
12 #include "content/public/browser/render_process_host.h" 13 #include "content/public/browser/render_process_host.h"
13 #include "content/public/browser/resource_dispatcher_host.h" 14 #include "content/public/browser/resource_dispatcher_host.h"
14 #include "content/public/browser/storage_partition.h" 15 #include "content/public/browser/storage_partition.h"
15 #include "content/public/common/content_switches.h" 16 #include "content/public/common/content_switches.h"
16 #include "content/public/common/url_constants.h" 17 #include "content/public/common/url_constants.h"
17 #include "content/shell/browser/shell.h" 18 #include "content/shell/browser/shell.h"
18 #include "content/shell/browser/shell_browser_context.h" 19 #include "content/shell/browser/shell_browser_context.h"
19 #include "content/shell/browser/shell_browser_main_parts.h" 20 #include "content/shell/browser/shell_browser_main_parts.h"
20 #include "content/shell/browser/shell_devtools_delegate.h" 21 #include "content/shell/browser/shell_devtools_delegate.h"
21 #include "content/shell/browser/shell_message_filter.h" 22 #include "content/shell/browser/shell_message_filter.h"
(...skipping 18 matching lines...) Expand all
40 #endif 41 #endif
41 42
42 #if defined(OS_POSIX) && !defined(OS_MACOSX) 43 #if defined(OS_POSIX) && !defined(OS_MACOSX)
43 #include "base/debug/leak_annotations.h" 44 #include "base/debug/leak_annotations.h"
44 #include "base/platform_file.h" 45 #include "base/platform_file.h"
45 #include "components/breakpad/app/breakpad_linux.h" 46 #include "components/breakpad/app/breakpad_linux.h"
46 #include "components/breakpad/browser/crash_handler_host_linux.h" 47 #include "components/breakpad/browser/crash_handler_host_linux.h"
47 #include "content/public/common/content_descriptors.h" 48 #include "content/public/common/content_descriptors.h"
48 #endif 49 #endif
49 50
51 #if defined(OS_WIN)
52 #include "content/common/sandbox_win.h"
53 #include "sandbox/win/src/sandbox.h"
54 #endif
55
50 namespace content { 56 namespace content {
51 57
52 namespace { 58 namespace {
53 59
54 ShellContentBrowserClient* g_browser_client; 60 ShellContentBrowserClient* g_browser_client;
55 bool g_swap_processes_for_redirect = false; 61 bool g_swap_processes_for_redirect = false;
56 62
57 #if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) 63 #if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID)
58 breakpad::CrashHandlerHostLinux* CreateCrashHandlerHost( 64 breakpad::CrashHandlerHostLinux* CreateCrashHandlerHost(
59 const std::string& process_type) { 65 const std::string& process_type) {
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 } 224 }
219 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kCrashDumpsDir)) { 225 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kCrashDumpsDir)) {
220 command_line->AppendSwitchPath( 226 command_line->AppendSwitchPath(
221 switches::kCrashDumpsDir, 227 switches::kCrashDumpsDir,
222 CommandLine::ForCurrentProcess()->GetSwitchValuePath( 228 CommandLine::ForCurrentProcess()->GetSwitchValuePath(
223 switches::kCrashDumpsDir)); 229 switches::kCrashDumpsDir));
224 } 230 }
225 if (CommandLine::ForCurrentProcess()->HasSwitch( 231 if (CommandLine::ForCurrentProcess()->HasSwitch(
226 switches::kEnableLeakDetection)) 232 switches::kEnableLeakDetection))
227 command_line->AppendSwitch(switches::kEnableLeakDetection); 233 command_line->AppendSwitch(switches::kEnableLeakDetection);
234 if (CommandLine::ForCurrentProcess()->HasSwitch(
235 switches::kRegisterFontFiles)) {
236 command_line->AppendSwitchASCII(
237 switches::kRegisterFontFiles,
238 CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
239 switches::kRegisterFontFiles));
240 }
228 } 241 }
229 242
230 void ShellContentBrowserClient::OverrideWebkitPrefs( 243 void ShellContentBrowserClient::OverrideWebkitPrefs(
231 RenderViewHost* render_view_host, 244 RenderViewHost* render_view_host,
232 const GURL& url, 245 const GURL& url,
233 WebPreferences* prefs) { 246 WebPreferences* prefs) {
234 if (!CommandLine::ForCurrentProcess()->HasSwitch(switches::kDumpRenderTree)) 247 if (!CommandLine::ForCurrentProcess()->HasSwitch(switches::kDumpRenderTree))
235 return; 248 return;
236 WebKitTestController::Get()->OverrideWebkitPrefs(prefs); 249 WebKitTestController::Get()->OverrideWebkitPrefs(prefs);
237 } 250 }
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
314 #else // !defined(OS_ANDROID) 327 #else // !defined(OS_ANDROID)
315 int crash_signal_fd = GetCrashSignalFD(command_line); 328 int crash_signal_fd = GetCrashSignalFD(command_line);
316 if (crash_signal_fd >= 0) { 329 if (crash_signal_fd >= 0) {
317 mappings->push_back(FileDescriptorInfo( 330 mappings->push_back(FileDescriptorInfo(
318 kCrashDumpSignal, base::FileDescriptor(crash_signal_fd, false))); 331 kCrashDumpSignal, base::FileDescriptor(crash_signal_fd, false)));
319 } 332 }
320 #endif // defined(OS_ANDROID) 333 #endif // defined(OS_ANDROID)
321 } 334 }
322 #endif // defined(OS_POSIX) && !defined(OS_MACOSX) 335 #endif // defined(OS_POSIX) && !defined(OS_MACOSX)
323 336
337 #if defined(OS_WIN)
338 void ShellContentBrowserClient::PreSpawnRenderer(sandbox::TargetPolicy* policy,
339 bool* success) {
340 // Add sideloaded font files for testing. See also DIR_WINDOWS_FONTS
341 // addition in |StartSandboxedProcess|.
342 std::vector<std::string> font_files = GetSideloadFontFiles();
343 for (std::vector<std::string>::const_iterator i(font_files.begin());
344 i != font_files.end();
345 ++i) {
346 policy->AddRule(sandbox::TargetPolicy::SUBSYS_FILES,
347 sandbox::TargetPolicy::FILES_ALLOW_READONLY,
348 base::UTF8ToWide(*i).c_str());
349 }
350 }
351 #endif // OS_WIN
352
324 ShellBrowserContext* ShellContentBrowserClient::browser_context() { 353 ShellBrowserContext* ShellContentBrowserClient::browser_context() {
325 return shell_browser_main_parts_->browser_context(); 354 return shell_browser_main_parts_->browser_context();
326 } 355 }
327 356
328 ShellBrowserContext* 357 ShellBrowserContext*
329 ShellContentBrowserClient::off_the_record_browser_context() { 358 ShellContentBrowserClient::off_the_record_browser_context() {
330 return shell_browser_main_parts_->off_the_record_browser_context(); 359 return shell_browser_main_parts_->off_the_record_browser_context();
331 } 360 }
332 361
333 AccessTokenStore* ShellContentBrowserClient::CreateAccessTokenStore() { 362 AccessTokenStore* ShellContentBrowserClient::CreateAccessTokenStore() {
334 return new ShellAccessTokenStore(browser_context()); 363 return new ShellAccessTokenStore(browser_context());
335 } 364 }
336 365
337 ShellBrowserContext* 366 ShellBrowserContext*
338 ShellContentBrowserClient::ShellBrowserContextForBrowserContext( 367 ShellContentBrowserClient::ShellBrowserContextForBrowserContext(
339 BrowserContext* content_browser_context) { 368 BrowserContext* content_browser_context) {
340 if (content_browser_context == browser_context()) 369 if (content_browser_context == browser_context())
341 return browser_context(); 370 return browser_context();
342 DCHECK_EQ(content_browser_context, off_the_record_browser_context()); 371 DCHECK_EQ(content_browser_context, off_the_record_browser_context());
343 return off_the_record_browser_context(); 372 return off_the_record_browser_context();
344 } 373 }
345 374
346 } // namespace content 375 } // namespace content
OLDNEW
« no previous file with comments | « content/shell/browser/shell_content_browser_client.h ('k') | content/shell/common/shell_switches.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698