1// Copyright 2014 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 "ui/views_content_client/views_content_main_delegate.h" 6 7#include <string> 8 9#include "base/command_line.h" 10#include "base/files/file_path.h" 11#include "base/logging.h" 12#include "base/path_service.h" 13#include "content/public/common/content_switches.h" 14#include "ui/base/resource/resource_bundle.h" 15#include "ui/base/ui_base_paths.h" 16#include "ui/views_content_client/views_content_browser_client.h" 17 18#if defined(OS_WIN) 19#include "base/logging_win.h" 20#endif 21 22namespace ui { 23namespace { 24 25#if defined(OS_WIN) 26// {83FAC8EE-7A0E-4dbb-A3F6-6F500D7CAB1A} 27const GUID kViewsContentClientProviderName = 28 { 0x83fac8ee, 0x7a0e, 0x4dbb, 29 { 0xa3, 0xf6, 0x6f, 0x50, 0xd, 0x7c, 0xab, 0x1a } }; 30#endif 31 32} // namespace 33 34ViewsContentMainDelegate::ViewsContentMainDelegate( 35 ViewsContentClient* views_content_client) 36 : views_content_client_(views_content_client) { 37} 38 39ViewsContentMainDelegate::~ViewsContentMainDelegate() { 40} 41 42bool ViewsContentMainDelegate::BasicStartupComplete(int* exit_code) { 43 const CommandLine& command_line = *CommandLine::ForCurrentProcess(); 44 std::string process_type = 45 command_line.GetSwitchValueASCII(switches::kProcessType); 46 47 content::SetContentClient(&content_client_); 48 49 logging::LoggingSettings settings; 50 settings.logging_dest = logging::LOG_TO_SYSTEM_DEBUG_LOG; 51 bool success = logging::InitLogging(settings); 52 CHECK(success); 53#if defined(OS_WIN) 54 logging::LogEventProvider::Initialize(kViewsContentClientProviderName); 55#endif 56 57 return false; 58} 59 60void ViewsContentMainDelegate::PreSandboxStartup() { 61 base::FilePath ui_test_pak_path; 62 DCHECK(PathService::Get(ui::UI_TEST_PAK, &ui_test_pak_path)); 63 ui::ResourceBundle::InitSharedInstanceWithPakPath(ui_test_pak_path); 64 65 // Load content resources to provide, e.g., sandbox configuration data on Mac. 66 base::FilePath content_resources_pak_path; 67 PathService::Get(base::DIR_MODULE, &content_resources_pak_path); 68 ui::ResourceBundle::GetSharedInstance().AddDataPackFromPath( 69 content_resources_pak_path.AppendASCII("content_resources.pak"), 70 ui::SCALE_FACTOR_100P); 71} 72 73content::ContentBrowserClient* 74 ViewsContentMainDelegate::CreateContentBrowserClient() { 75 browser_client_.reset(new ViewsContentBrowserClient(views_content_client_)); 76 return browser_client_.get(); 77} 78 79} // namespace ui 80