summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/app/chrome_exe_main_win.cc2
-rw-r--r--chrome/app/chrome_main.cc16
-rw-r--r--chrome/app/client_util.cc14
-rw-r--r--chrome/app/dummy_main_functions.cc56
-rw-r--r--chrome/app/nacl64_dll.ver2
-rw-r--r--chrome/browser/nacl_host/nacl_broker_host_win.cc4
-rw-r--r--chrome/browser/nacl_host/nacl_process_host.cc3
-rw-r--r--chrome/browser/renderer_host/render_process_host_dummy.cc6
-rw-r--r--chrome/chrome.gyp9
-rw-r--r--chrome/chrome_common.gypi205
-rw-r--r--chrome/chrome_dll.gypi199
-rw-r--r--chrome/chrome_exe.gypi178
-rw-r--r--chrome/common/chrome_content_client.cc22
-rw-r--r--chrome/common/chrome_content_plugin_client.cc2
-rw-r--r--chrome/common/chrome_version_info.cc2
-rw-r--r--chrome/common/googleurl_dummy.cc18
-rw-r--r--chrome/common/nacl_cmd_line.cc4
-rw-r--r--chrome/installer/mini_installer.gyp1
-rw-r--r--chrome/installer/mini_installer/chrome.release1
-rw-r--r--chrome/installer/util/util_constants.cc1
-rw-r--r--chrome/installer/util/util_constants.h1
-rw-r--r--chrome/nacl.gypi18
-rw-r--r--chrome/nacl/nacl_broker_listener.cc (renamed from chrome/nacl/broker_thread.cc)53
-rw-r--r--chrome/nacl/nacl_broker_listener.h (renamed from chrome/nacl/broker_thread.h)29
-rw-r--r--chrome/nacl/nacl_exe_win_64.cc105
-rw-r--r--chrome/nacl/nacl_helper_linux.cc4
-rw-r--r--chrome/nacl/nacl_listener.h6
-rw-r--r--chrome/nacl/nacl_main.cc69
-rw-r--r--chrome/nacl/nacl_main_platform_delegate_win.cc1
-rw-r--r--chrome/tools/build/win/FILES1
-rw-r--r--chrome/tools/build/win/FILES.cfg5
-rw-r--r--chrome/tools/build/win/SYMBOLS1
-rw-r--r--content/app/content_main.cc47
-rw-r--r--content/app/sandbox_helper_win.cc24
-rw-r--r--content/app/sandbox_helper_win.h20
-rw-r--r--content/app/startup_helper_win.cc69
-rw-r--r--content/app/startup_helper_win.h31
-rw-r--r--content/common/child_thread.cc5
-rw-r--r--content/common/content_message_generator.h4
-rw-r--r--content/common/file_system/file_system_dispatcher_dummy.cc21
-rw-r--r--content/common/quota_dispatcher_dummy.cc21
-rw-r--r--content/common/resource_dispatcher_dummy.cc33
-rw-r--r--content/common/sandbox_policy.cc4
-rw-r--r--content/common/socket_stream_dispatcher_dummy.cc18
-rw-r--r--content/content_app.gypi4
-rw-r--r--ui/base/resource/resource_bundle.h2
-rw-r--r--ui/base/resource/resource_bundle_dummy.cc63
-rw-r--r--ui/ui.gyp30
-rw-r--r--webkit/glue/webkit_glue_dummy.cc25
49 files changed, 461 insertions, 998 deletions
diff --git a/chrome/app/chrome_exe_main_win.cc b/chrome/app/chrome_exe_main_win.cc
index 659ce16..8d53054 100644
--- a/chrome/app/chrome_exe_main_win.cc
+++ b/chrome/app/chrome_exe_main_win.cc
@@ -9,7 +9,7 @@
#include "base/command_line.h"
#include "chrome/app/breakpad_win.h"
#include "chrome/app/client_util.h"
-#include "content/app/sandbox_helper_win.h"
+#include "content/app/startup_helper_win.h"
#include "content/common/result_codes.h"
#include "sandbox/src/sandbox_factory.h"
diff --git a/chrome/app/chrome_main.cc b/chrome/app/chrome_main.cc
index 0bedac4..8b69e3f 100644
--- a/chrome/app/chrome_main.cc
+++ b/chrome/app/chrome_main.cc
@@ -89,28 +89,21 @@
#include "chrome/app/breakpad_linux.h"
#endif
-#if !defined(NACL_WIN64) // We don't build the this code on win nacl64.
base::LazyInstance<chrome::ChromeContentBrowserClient>
g_chrome_content_browser_client(base::LINKER_INITIALIZED);
base::LazyInstance<chrome::ChromeContentRendererClient>
g_chrome_content_renderer_client(base::LINKER_INITIALIZED);
base::LazyInstance<chrome::ChromeContentUtilityClient>
g_chrome_content_utility_client(base::LINKER_INITIALIZED);
-#endif // NACL_WIN64
-
base::LazyInstance<chrome::ChromeContentPluginClient>
g_chrome_content_plugin_client(base::LINKER_INITIALIZED);
extern int RendererMain(const MainFunctionParams&);
extern int NaClMain(const MainFunctionParams&);
extern int ProfileImportMain(const MainFunctionParams&);
-#if defined(_WIN64)
-extern int NaClBrokerMain(const MainFunctionParams&);
-#endif
extern int ServiceProcessMain(const MainFunctionParams&);
#if defined(OS_WIN)
-// TODO(erikkay): isn't this already defined somewhere?
#define DLLEXPORT __declspec(dllexport)
// We use extern C for the prototype DLLEXPORT to avoid C++ name mangling.
@@ -271,18 +264,14 @@ void EnableHeapProfiler(const CommandLine& command_line) {
}
void InitializeChromeContentRendererClient() {
-#if !defined(NACL_WIN64) // We don't build the renderer code on win nacl64.
content::GetContentClient()->set_renderer(
&g_chrome_content_renderer_client.Get());
-#endif
}
void InitializeChromeContentClient(const std::string& process_type) {
if (process_type.empty()) {
-#if !defined(NACL_WIN64) // We don't build the this code on win nacl64.
content::GetContentClient()->set_browser(
&g_chrome_content_browser_client.Get());
-#endif
} else if (process_type == switches::kPluginProcess) {
content::GetContentClient()->set_plugin(
&g_chrome_content_plugin_client.Get());
@@ -290,10 +279,8 @@ void InitializeChromeContentClient(const std::string& process_type) {
process_type == switches::kExtensionProcess) {
InitializeChromeContentRendererClient();
} else if (process_type == switches::kUtilityProcess) {
-#if !defined(NACL_WIN64) // We don't build this code on win nacl64.
content::GetContentClient()->set_utility(
&g_chrome_content_utility_client.Get());
-#endif
}
}
@@ -668,9 +655,6 @@ class ChromeMainDelegate : public content::ContentMainDelegate {
#endif
#if !defined(DISABLE_NACL)
{ switches::kNaClLoaderProcess, NaClMain },
-#if defined(_WIN64) // The broker process is used only on Win64.
- { switches::kNaClBrokerProcess, NaClBrokerMain },
-#endif
#endif // DISABLE_NACL
};
diff --git a/chrome/app/client_util.cc b/chrome/app/client_util.cc
index 06a1e99..79d92d1 100644
--- a/chrome/app/client_util.cc
+++ b/chrome/app/client_util.cc
@@ -168,21 +168,7 @@ bool GetPreReadExperimentGroup(DWORD* pre_read) {
HMODULE LoadChromeWithDirectory(std::wstring* dir) {
::SetCurrentDirectoryW(dir->c_str());
const CommandLine& cmd_line = *CommandLine::ForCurrentProcess();
-#ifdef _WIN64
- if ((cmd_line.GetSwitchValueASCII(switches::kProcessType) ==
- switches::kNaClBrokerProcess) ||
- (cmd_line.GetSwitchValueASCII(switches::kProcessType) ==
- switches::kNaClLoaderProcess)) {
- // Load the 64-bit DLL when running in a 64-bit process.
- dir->append(installer::kChromeNaCl64Dll);
- } else {
- // Only NaCl broker and loader can be launched as Win64 processes.
- NOTREACHED();
- return NULL;
- }
-#else
dir->append(installer::kChromeDll);
-#endif
#ifndef WIN_DISABLE_PREREAD
#ifdef NDEBUG
diff --git a/chrome/app/dummy_main_functions.cc b/chrome/app/dummy_main_functions.cc
deleted file mode 100644
index 4240564..0000000
--- a/chrome/app/dummy_main_functions.cc
+++ /dev/null
@@ -1,56 +0,0 @@
-// Copyright (c) 2011 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 "chrome/common/chrome_result_codes.h"
-#include "content/common/main_function_params.h"
-
-// Native Client binary for 64-bit Windows can run only the NaCl loader or
-// the sandbox broker processes. Other process types are not supported.
-int BrowserMain(const MainFunctionParams& parameters) {
- return chrome::RESULT_CODE_BAD_PROCESS_TYPE;
-}
-
-int RendererMain(const MainFunctionParams& parameters) {
- return chrome::RESULT_CODE_BAD_PROCESS_TYPE;
-}
-
-int PluginMain(const MainFunctionParams& parameters) {
- return chrome::RESULT_CODE_BAD_PROCESS_TYPE;
-}
-
-int PpapiPluginMain(const MainFunctionParams& parameters) {
- return chrome::RESULT_CODE_BAD_PROCESS_TYPE;
-}
-
-int PpapiBrokerMain(const MainFunctionParams& parameters) {
- return chrome::RESULT_CODE_BAD_PROCESS_TYPE;
-}
-
-int WorkerMain(const MainFunctionParams& parameters) {
- return chrome::RESULT_CODE_BAD_PROCESS_TYPE;
-}
-
-int UtilityMain(const MainFunctionParams& parameters) {
- return chrome::RESULT_CODE_BAD_PROCESS_TYPE;
-}
-
-int ProfileImportMain(const MainFunctionParams& parameters) {
- return chrome::RESULT_CODE_BAD_PROCESS_TYPE;
-}
-
-int ZygoteMain(const MainFunctionParams& parameters) {
- return chrome::RESULT_CODE_BAD_PROCESS_TYPE;
-}
-
-int DiagnosticsMain(const CommandLine& command_line) {
- return 1;
-}
-
-int GpuMain(const MainFunctionParams&) {
- return chrome::RESULT_CODE_BAD_PROCESS_TYPE;
-}
-
-int ServiceProcessMain(const MainFunctionParams& parameters) {
- return chrome::RESULT_CODE_BAD_PROCESS_TYPE;
-}
diff --git a/chrome/app/nacl64_dll.ver b/chrome/app/nacl64_dll.ver
deleted file mode 100644
index 998c4a2..0000000
--- a/chrome/app/nacl64_dll.ver
+++ /dev/null
@@ -1,2 +0,0 @@
-INTERNAL_NAME=nacl64_dll
-ORIGINAL_FILENAME=nacl64.dll
diff --git a/chrome/browser/nacl_host/nacl_broker_host_win.cc b/chrome/browser/nacl_host/nacl_broker_host_win.cc
index ed16610..dc1bb7f 100644
--- a/chrome/browser/nacl_host/nacl_broker_host_win.cc
+++ b/chrome/browser/nacl_host/nacl_broker_host_win.cc
@@ -11,6 +11,7 @@
#include "chrome/browser/nacl_host/nacl_process_host.h"
#include "chrome/common/chrome_constants.h"
#include "chrome/common/chrome_switches.h"
+#include "chrome/common/logging_chrome.h"
#include "chrome/common/nacl_cmd_line.h"
#include "chrome/common/nacl_messages.h"
@@ -38,8 +39,9 @@ bool NaClBrokerHost::Init() {
cmd_line->AppendSwitchASCII(switches::kProcessType,
switches::kNaClBrokerProcess);
-
cmd_line->AppendSwitchASCII(switches::kProcessChannelID, channel_id());
+ if (logging::DialogsAreSuppressed())
+ cmd_line->AppendSwitch(switches::kNoErrorDialogs);
BrowserChildProcessHost::Launch(FilePath(), cmd_line);
return true;
diff --git a/chrome/browser/nacl_host/nacl_process_host.cc b/chrome/browser/nacl_host/nacl_process_host.cc
index cb2f3a9..62e1b85 100644
--- a/chrome/browser/nacl_host/nacl_process_host.cc
+++ b/chrome/browser/nacl_host/nacl_process_host.cc
@@ -169,8 +169,9 @@ bool NaClProcessHost::LaunchSelLdr() {
cmd_line->AppendSwitchASCII(switches::kProcessType,
switches::kNaClLoaderProcess);
-
cmd_line->AppendSwitchASCII(switches::kProcessChannelID, channel_id());
+ if (logging::DialogsAreSuppressed())
+ cmd_line->AppendSwitch(switches::kNoErrorDialogs);
if (!nacl_loader_prefix.empty())
cmd_line->PrependWrapper(nacl_loader_prefix);
diff --git a/chrome/browser/renderer_host/render_process_host_dummy.cc b/chrome/browser/renderer_host/render_process_host_dummy.cc
deleted file mode 100644
index a15f637..0000000
--- a/chrome/browser/renderer_host/render_process_host_dummy.cc
+++ /dev/null
@@ -1,6 +0,0 @@
-// Copyright (c) 2006-2009 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 "content/browser/renderer_host/render_process_host.h"
-
-bool RenderProcessHost::run_renderer_in_process_ = false;
diff --git a/chrome/chrome.gyp b/chrome/chrome.gyp
index 2c45c1c..7ef735e 100644
--- a/chrome/chrome.gyp
+++ b/chrome/chrome.gyp
@@ -36,13 +36,6 @@
'../printing/printing.gyp:printing',
'../third_party/WebKit/Source/WebKit/chromium/WebKit.gyp:inspector_resources',
],
- 'nacl_win64_dependencies': [
- 'common_nacl_win64',
- 'common_constants_win64',
- 'installer_util_nacl_win64',
- '../base/base.gyp:base_static_win64',
- '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations_win64',
- ],
'allocator_target': '../base/allocator/allocator.gyp:allocator',
'grit_out_dir': '<(SHARED_INTERMEDIATE_DIR)/chrome',
'protoc_out_dir': '<(SHARED_INTERMEDIATE_DIR)/protoc_out',
@@ -1395,7 +1388,6 @@
'app/chrome_exe.ver',
'app/chrome_dll.ver',
'app/nacl64_exe.ver',
- 'app/nacl64_dll.ver',
'app/other.ver',
],
'rules': [
@@ -1555,7 +1547,6 @@
'type': 'executable',
'product_name': 'crash_service64',
'dependencies': [
- 'app/policy/cloud_policy_codegen.gyp:policy_win64',
'common_constants_win64',
'installer_util_nacl_win64',
'../base/base.gyp:base_static_win64',
diff --git a/chrome/chrome_common.gypi b/chrome/chrome_common.gypi
index ab91337..c107ee2 100644
--- a/chrome/chrome_common.gypi
+++ b/chrome/chrome_common.gypi
@@ -3,80 +3,6 @@
# found in the LICENSE file.
{
- 'target_defaults': {
- 'variables': {
- 'chrome_common_target': 0,
- },
- 'target_conditions': [
- ['chrome_common_target==1', {
- 'include_dirs': [
- '..',
- ],
- 'conditions': [
- ['OS=="win"', {
- 'include_dirs': [
- '<(DEPTH)/third_party/wtl/include',
- ],
- }],
- ],
- 'sources': [
- # .cc, .h, and .mm files under chrome/common that are used on all
- # platforms, including both 32-bit and 64-bit Windows.
- # Test files are not included.
- 'common/about_handler.cc',
- 'common/about_handler.h',
- 'common/attrition_experiments.h',
- 'common/auto_start_linux.cc',
- 'common/auto_start_linux.h',
- 'common/autofill_messages.h',
- 'common/child_process_logging.h',
- 'common/child_process_logging_linux.cc',
- 'common/child_process_logging_mac.mm',
- 'common/child_process_logging_win.cc',
- 'common/chrome_notification_types.h',
- 'common/chrome_version_info.cc',
- 'common/chrome_version_info_linux.cc',
- 'common/chrome_version_info_mac.mm',
- 'common/chrome_version_info_win.cc',
- 'common/chrome_version_info.h',
- 'common/content_settings.cc',
- 'common/content_settings.h',
- 'common/content_settings_helper.cc',
- 'common/content_settings_helper.h',
- 'common/content_settings_types.h',
- 'common/external_ipc_fuzzer.h',
- 'common/external_ipc_fuzzer.cc',
- 'common/guid.cc',
- 'common/guid.h',
- 'common/guid_posix.cc',
- 'common/guid_win.cc',
- 'common/icon_messages.h',
- 'common/instant_types.h',
- 'common/logging_chrome.cc',
- 'common/logging_chrome.h',
- 'common/metrics_helpers.cc',
- 'common/metrics_helpers.h',
- 'common/multi_process_lock.h',
- 'common/multi_process_lock_linux.cc',
- 'common/multi_process_lock_mac.cc',
- 'common/multi_process_lock_win.cc',
- 'common/nacl_cmd_line.cc',
- 'common/nacl_cmd_line.h',
- 'common/nacl_messages.cc',
- 'common/nacl_messages.h',
- 'common/nacl_types.h',
- 'common/profiling.cc',
- 'common/profiling.h',
- 'common/ref_counted_util.h',
- 'common/safe_browsing/safebrowsing_messages.h',
- 'common/switch_utils.cc',
- 'common/switch_utils.h',
- 'common/time_format.cc',
- 'common/time_format.h',
- ],
- }],
- ],
- },
'targets': [
{
'target_name': 'common',
@@ -84,8 +10,9 @@
'variables': {
'chrome_common_target': 1,
},
- # TODO(gregoryd): This could be shared with the 64-bit target, but
- # it does not work due to a gyp issue.
+ 'include_dirs': [
+ '..',
+ ],
'direct_dependent_settings': {
'include_dirs': [
'..',
@@ -123,8 +50,12 @@
'../webkit/support/webkit_support.gyp:glue',
],
'sources': [
- # .cc, .h, and .mm files under chrome/common that are not required for
- # building 64-bit Windows targets. Test files are not included.
+ 'common/about_handler.cc',
+ 'common/about_handler.h',
+ 'common/attrition_experiments.h',
+ 'common/auto_start_linux.cc',
+ 'common/auto_start_linux.h',
+ 'common/autofill_messages.h',
'common/automation_constants.cc',
'common/automation_constants.h',
'common/automation_messages.cc',
@@ -133,11 +64,21 @@
'common/badge_util.cc',
'common/badge_util.h',
'common/bzip2_error_handler.cc',
+ 'common/child_process_logging.h',
+ 'common/child_process_logging_linux.cc',
+ 'common/child_process_logging_mac.mm',
+ 'common/child_process_logging_win.cc',
'common/chrome_content_client.cc',
'common/chrome_content_client.h',
'common/chrome_content_plugin_client.cc',
'common/chrome_content_plugin_client.h',
+ 'common/chrome_notification_types.h',
'common/chrome_plugin_messages.h',
+ 'common/chrome_version_info.cc',
+ 'common/chrome_version_info_linux.cc',
+ 'common/chrome_version_info_mac.mm',
+ 'common/chrome_version_info_win.cc',
+ 'common/chrome_version_info.h',
'common/cloud_print/cloud_print_proxy_info.cc',
'common/cloud_print/cloud_print_proxy_info.h',
'common/common_api.h',
@@ -145,6 +86,11 @@
'common/common_message_generator.h',
'common/common_param_traits.cc',
'common/common_param_traits.h',
+ 'common/content_settings.cc',
+ 'common/content_settings.h',
+ 'common/content_settings_helper.cc',
+ 'common/content_settings_helper.h',
+ 'common/content_settings_types.h',
'common/custom_handlers/protocol_handler.cc',
'common/custom_handlers/protocol_handler.h',
'common/default_plugin.cc',
@@ -190,16 +136,26 @@
'common/extensions/url_pattern_set.h',
'common/extensions/user_script.cc',
'common/extensions/user_script.h',
+ 'common/external_ipc_fuzzer.h',
+ 'common/external_ipc_fuzzer.cc',
'common/favicon_url.cc',
'common/favicon_url.h',
+ 'common/guid.cc',
+ 'common/guid.h',
+ 'common/guid_posix.cc',
+ 'common/guid_win.cc',
+ 'common/icon_messages.h',
'common/important_file_writer.cc',
'common/important_file_writer.h',
+ 'common/instant_types.h',
'common/json_pref_store.cc',
'common/json_pref_store.h',
'common/json_schema_validator.cc',
'common/json_schema_validator.h',
'common/jstemplate_builder.cc',
'common/jstemplate_builder.h',
+ 'common/logging_chrome.cc',
+ 'common/logging_chrome.h',
'common/mac/app_mode_common.h',
'common/mac/app_mode_common.mm',
'common/mac/cfbundle_blocker.h',
@@ -210,6 +166,17 @@
'common/mac/objc_method_swizzle.mm',
'common/mac/objc_zombie.h',
'common/mac/objc_zombie.mm',
+ 'common/metrics_helpers.cc',
+ 'common/metrics_helpers.h',
+ 'common/multi_process_lock.h',
+ 'common/multi_process_lock_linux.cc',
+ 'common/multi_process_lock_mac.cc',
+ 'common/multi_process_lock_win.cc',
+ 'common/nacl_cmd_line.cc',
+ 'common/nacl_cmd_line.h',
+ 'common/nacl_messages.cc',
+ 'common/nacl_messages.h',
+ 'common/nacl_types.h',
'common/libxml_utils.cc',
'common/libxml_utils.h',
'common/native_window_notification_source.h',
@@ -218,10 +185,14 @@
'common/pref_store.h',
'common/print_messages.cc',
'common/print_messages.h',
+ 'common/profiling.cc',
+ 'common/profiling.h',
'common/random.cc',
'common/random.h',
+ 'common/ref_counted_util.h',
'common/render_messages.cc',
'common/render_messages.h',
+ 'common/safe_browsing/safebrowsing_messages.h',
'common/scoped_co_mem.h',
'common/search_provider.h',
'common/service_messages.h',
@@ -235,8 +206,12 @@
'common/spellcheck_common.cc',
'common/spellcheck_common.h',
'common/spellcheck_messages.h',
+ 'common/switch_utils.cc',
+ 'common/switch_utils.h',
'common/thumbnail_score.cc',
'common/thumbnail_score.h',
+ 'common/time_format.cc',
+ 'common/time_format.h',
'common/url_constants.cc',
'common/url_constants.h',
'common/visitedlink_common.cc',
@@ -251,6 +226,11 @@
'common/zip.h',
],
'conditions': [
+ ['OS=="win"', {
+ 'include_dirs': [
+ '<(DEPTH)/third_party/wtl/include',
+ ],
+ }],
['toolkit_uses_gtk == 1', {
'dependencies': [
'../build/linux/system.gyp:gtk',
@@ -429,73 +409,4 @@
'includes': [ '../build/protoc.gypi' ],
},
],
- 'conditions': [
- ['OS=="win"', {
- 'targets': [
- {
- 'target_name': 'common_nacl_win64',
- 'type': 'static_library',
- 'variables': {
- 'chrome_common_target': 1,
- },
- 'dependencies': [
- # TODO(gregoryd): chrome_resources and chrome_strings could be
- # shared with the 32-bit target, but it does not work due to a gyp
- # issue.
- 'chrome_resources',
- 'chrome_strings',
- 'common_constants_win64',
- 'app/policy/cloud_policy_codegen.gyp:policy_win64',
- '../base/base.gyp:base_nacl_win64',
- '../ipc/ipc.gyp:ipc_win64',
- '../third_party/libxml/libxml.gyp:libxml',
- '../ui/ui.gyp:ui_nacl_win64',
- '../ui/ui.gyp:ui_resources',
- '../ui/ui.gyp:ui_resources_standard',
- ],
- 'include_dirs': [
- '../third_party/icu/public/i18n',
- '../third_party/icu/public/common',
- # We usually get these skia directories by adding a dependency on
- # skia, bu we don't need it for NaCl's 64-bit Windows support. The
- # directories are required for resolving the includes in any case.
- '../third_party/skia/include/config',
- '../third_party/skia/include/core',
- '../skia/config',
- '../skia/config/win',
- ],
- 'defines': [
- '<@(nacl_win64_defines)',
- ],
- 'sources': [
- '../webkit/glue/webkit_glue_dummy.cc',
- 'common/url_constants.cc',
- # TODO(bradnelson): once automatic generation of 64 bit targets on
- # Windows is ready, take this out and add a dependency on
- # content_common.gypi.
- '../content/common/file_system/file_system_dispatcher_dummy.cc',
- '../content/common/message_router.cc',
- '../content/common/quota_dispatcher_dummy.cc',
- '../content/common/resource_dispatcher_dummy.cc',
- '../content/common/socket_stream_dispatcher_dummy.cc',
- ],
- 'export_dependent_settings': [
- 'app/policy/cloud_policy_codegen.gyp:policy_win64',
- ],
- # TODO(gregoryd): This could be shared with the 32-bit target, but
- # it does not work due to a gyp issue.
- 'direct_dependent_settings': {
- 'include_dirs': [
- '..',
- ],
- },
- 'configurations': {
- 'Common_Base': {
- 'msvs_target_platform': 'x64',
- },
- },
- },
- ],
- }],
- ],
}
diff --git a/chrome/chrome_dll.gypi b/chrome/chrome_dll.gypi
index 24b968c..5dda655 100644
--- a/chrome/chrome_dll.gypi
+++ b/chrome/chrome_dll.gypi
@@ -2,69 +2,11 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
{
- 'target_defaults': {
- 'variables': {
- 'chrome_dll_target': 0,
- },
- 'target_conditions': [
- ['chrome_dll_target==1', {
- 'conditions': [
- ['OS=="win"', {
- 'include_dirs': [
- '<(DEPTH)/third_party/wtl/include',
- ],
- 'defines': [
- 'CHROME_DLL',
- 'BROWSER_DLL',
- 'RENDERER_DLL',
- 'PLUGIN_DLL',
- ],
- 'msvs_settings': {
- 'VCLinkerTool': {
- 'BaseAddress': '0x01c30000',
- 'DelayLoadDLLs': [
- 'comdlg32.dll',
- 'crypt32.dll',
- 'cryptui.dll',
- 'dhcpcsvc.dll',
- 'imagehlp.dll',
- 'imm32.dll',
- 'iphlpapi.dll',
- 'setupapi.dll',
- 'urlmon.dll',
- 'winhttp.dll',
- 'wininet.dll',
- 'winspool.drv',
- 'ws2_32.dll',
- 'wsock32.dll',
- ],
- # Set /SUBSYSTEM:WINDOWS for chrome.dll (for consistency).
- 'SubSystem': '2',
- },
- 'VCManifestTool': {
- 'AdditionalManifestFiles': '$(ProjectDir)\\app\\chrome.dll.manifest',
- },
- },
- 'configurations': {
- 'Debug_Base': {
- 'msvs_settings': {
- 'VCLinkerTool': {
- 'LinkIncremental': '<(msvs_large_module_debug_link_mode)',
- },
- },
- },
- },
- }], # OS=="win"
- ], # conditions
- }],
- ],
- },
'conditions': [
['OS=="mac" or OS=="win"', {
'targets': [
{
'variables': {
- 'chrome_dll_target': 1,
'conditions' : [
['OS=="win" and optimize_with_syzygy==1', {
# On Windows we use build chrome_dll as an intermediate target
@@ -142,10 +84,31 @@
#'app/check_dependents.bat',
#'app/chrome.dll.deps',
],
- 'msvs_settings': {
+ 'include_dirs': [
+ '<(DEPTH)/third_party/wtl/include',
+ ],
+ 'defines': [
+ 'CHROME_DLL',
+ 'BROWSER_DLL',
+ 'RENDERER_DLL',
+ 'PLUGIN_DLL',
+ ],
+ 'configurations': {
+ 'Debug_Base': {
+ 'msvs_settings': {
+ 'VCLinkerTool': {
+ 'LinkIncremental': '<(msvs_large_module_debug_link_mode)',
+ },
+ },
+ },
+ },
+ 'msvs_settings': {
'VCLinkerTool': {
+ 'BaseAddress': '0x01c30000',
'ImportLibrary': '$(OutDir)\\lib\\chrome_dll.lib',
'ProgramDatabaseFile': '$(OutDir)\\chrome_dll.pdb',
+ # Set /SUBSYSTEM:WINDOWS for chrome.dll (for consistency).
+ 'SubSystem': '2',
'conditions': [
['optimize_with_syzygy==1', {
# When syzygy is enabled we use build chrome_dll as an
@@ -158,6 +121,25 @@
'UseLibraryDependencyInputs': "true",
}],
],
+ 'DelayLoadDLLs': [
+ 'comdlg32.dll',
+ 'crypt32.dll',
+ 'cryptui.dll',
+ 'dhcpcsvc.dll',
+ 'imagehlp.dll',
+ 'imm32.dll',
+ 'iphlpapi.dll',
+ 'setupapi.dll',
+ 'urlmon.dll',
+ 'winhttp.dll',
+ 'wininet.dll',
+ 'winspool.drv',
+ 'ws2_32.dll',
+ 'wsock32.dll',
+ ],
+ },
+ 'VCManifestTool': {
+ 'AdditionalManifestFiles': '$(ProjectDir)\\app\\chrome.dll.manifest',
},
},
'conditions': [
@@ -654,104 +636,5 @@
}, # target chrome_dll
], # targets
}], # OS=="mac" or OS=="win"
- [ 'OS=="win"', {
- 'targets': [
- {
- 'target_name': 'chrome_dll_nacl_win64',
- 'type': 'shared_library',
- 'product_name': 'nacl64',
- 'variables': {
- 'chrome_dll_target': 1,
- },
- 'include_dirs': [
- '..',
- ],
- 'dependencies': [
- '<@(nacl_win64_dependencies)',
- 'chrome_version_resources',
- 'nacl_win64',
- '../base/base.gyp:base_i18n_nacl_win64',
- ],
- 'defines': [
- '<@(nacl_win64_defines)',
- # Required to build gl_switches.cc as part of this binary.
- 'GL_IMPLEMENTATION'
- ],
- 'sources': [
- 'app/chrome_command_ids.h',
- 'app/chrome_dll_resource.h',
- 'app/chrome_main.cc',
- # Parsing is needed for the UserDataDir policy which is read much
- # earlier than the initialization of the policy/pref system.
- 'browser/policy/policy_path_parser_win.cc',
- 'browser/renderer_host/render_process_host_dummy.cc',
- 'common/googleurl_dummy.cc',
-
- '<(SHARED_INTERMEDIATE_DIR)/chrome_version/nacl64_dll_version.rc',
-
- # TODO: It would be nice to have these pulled in
- # automatically from direct_dependent_settings in
- # their various targets (net.gyp:net_resources, etc.),
- # but that causes errors in other targets when
- # resulting .res files get referenced multiple times.
- '<(SHARED_INTERMEDIATE_DIR)/chrome/common_resources.rc',
- '<(SHARED_INTERMEDIATE_DIR)/ui/ui_resources/ui_resources.rc',
-
- # TODO(sgk): left-over from pre-gyp build, figure out
- # if we still need them and/or how to update to gyp.
- #'app/check_dependents.bat',
- #'app/chrome.dll.deps',
-
- # Stub entry points for process types that are not supported
- # by NaCl Win64 executable
- 'app/dummy_main_functions.cc',
-
- # TODO(bradnelson): once automatic generation of 64 bit targets on
- # Windows is ready, take this out and add a dependency on
- # content_common.gypi and common.gypi in nacl_win64_dependencies
- # and get rid of the common_constants.gypi which was added as a hack
- # to avoid making common compile on 64 bit on Windows.
- '../chrome/common/chrome_content_client.cc',
- '../chrome/common/chrome_content_plugin_client.cc',
- '../content/app/content_main.cc',
- '../content/common/child_process.cc',
- '../content/common/child_thread.cc',
- '../content/common/content_client.cc',
- '../content/common/content_constants.cc',
- '../content/common/content_counters.cc',
- '../content/common/content_message_generator.cc',
- '../content/common/content_paths.cc',
- '../content/common/content_switches.cc',
- '../content/common/debug_flags.cc',
- '../content/common/hi_res_timer_manager_win.cc',
- '../content/common/notification_details.cc',
- '../content/common/notification_service.cc',
- '../content/common/notification_source.cc',
- '../content/common/sandbox_policy.cc',
- '../content/common/sandbox_init_wrapper_win.cc',
- '../content/common/url_constants.cc',
- '../ui/gfx/gl/gl_switches.cc',
- ],
- 'msvs_settings': {
- 'VCLinkerTool': {
- 'ImportLibrary': '$(OutDir)\\lib\\nacl64_dll.lib',
- 'ProgramDatabaseFile': '$(OutDir)\\nacl64_dll.pdb',
- },
- },
- 'configurations': {
- 'Common_Base': {
- 'msvs_target_platform': 'x64',
- },
- 'Debug_Base': {
- 'msvs_settings': {
- 'VCLinkerTool': {
- 'LinkIncremental': '<(msvs_debug_link_nonincremental)',
- },
- },
- },
- },
- }, # target chrome_dll
- ],
- }],
],
}
diff --git a/chrome/chrome_exe.gypi b/chrome/chrome_exe.gypi
index 74445a8..60fecd0 100644
--- a/chrome/chrome_exe.gypi
+++ b/chrome/chrome_exe.gypi
@@ -3,99 +3,43 @@
# found in the LICENSE file.
{
- 'target_defaults': {
- 'variables': {
- 'chrome_exe_target': 0,
- },
- 'target_conditions': [
- ['chrome_exe_target==1', {
- 'sources': [
- # .cc, .h, and .mm files under app that are used on all
- # platforms, including both 32-bit and 64-bit Windows.
- # Test files are not included.
- 'app/breakpad_win.cc',
- 'app/breakpad_win.h',
- 'app/chrome_exe_main_gtk.cc',
- 'app/chrome_exe_main_mac.cc',
- 'app/chrome_exe_main_win.cc',
- 'app/chrome_exe_resource.h',
- 'app/client_util.cc',
- 'app/client_util.h',
- 'app/hard_error_handler_win.cc',
- 'app/hard_error_handler_win.h',
- 'app/scoped_ole_initializer.h',
- '../content/app/sandbox_helper_win.cc',
- '../content/common/content_switches.cc',
- ],
- 'mac_bundle_resources': [
- 'app/app-Info.plist',
- ],
- # TODO(mark): Come up with a fancier way to do this. It should only
- # be necessary to list app-Info.plist once, not the three times it is
- # listed here.
- 'mac_bundle_resources!': [
- 'app/app-Info.plist',
- ],
- 'xcode_settings': {
- 'CHROMIUM_STRIP_SAVE_FILE': 'app/app.saves',
- 'INFOPLIST_FILE': 'app/app-Info.plist',
- },
- 'conditions': [
- ['OS=="win"', {
- 'msvs_settings': {
- 'VCLinkerTool': {
- 'DelayLoadDLLs': [
- 'dbghelp.dll',
- 'dwmapi.dll',
- 'uxtheme.dll',
- 'ole32.dll',
- 'oleaut32.dll',
- ],
- # Set /SUBSYSTEM:WINDOWS for chrome.exe itself.
- 'SubSystem': '2',
- },
- 'VCManifestTool': {
- 'AdditionalManifestFiles': '$(ProjectDir)\\app\\chrome.exe.manifest',
- },
- },
- 'actions': [
- {
- 'action_name': 'first_run',
- 'inputs': [
- 'app/FirstRun',
- ],
- 'outputs': [
- '<(PRODUCT_DIR)/First Run',
- ],
- 'action': ['cp', '-f', '<@(_inputs)', '<@(_outputs)'],
- 'message': 'Copy first run complete sentinel file',
- },
- ],
- }, { # 'OS!="win"
- 'sources!': [
- 'app/client_util.cc',
- ]
- }],
- ['OS=="mac" and asan==1', {
- 'xcode_settings': {
- # Override the outer definition of CHROMIUM_STRIP_SAVE_FILE.
- 'CHROMIUM_STRIP_SAVE_FILE': 'app/app_asan.saves',
- },
- }],
- ],
- }],
- ],
- },
'targets': [
{
'target_name': 'chrome',
'type': 'executable',
'mac_bundle': 1,
'variables': {
- 'chrome_exe_target': 1,
'use_system_xdg_utils%': 0,
'disable_pie%': 0,
},
+ 'sources': [
+ 'app/breakpad_win.cc',
+ 'app/breakpad_win.h',
+ 'app/chrome_exe_main_gtk.cc',
+ 'app/chrome_exe_main_mac.cc',
+ 'app/chrome_exe_main_win.cc',
+ 'app/chrome_exe_resource.h',
+ 'app/client_util.cc',
+ 'app/client_util.h',
+ 'app/hard_error_handler_win.cc',
+ 'app/hard_error_handler_win.h',
+ 'app/scoped_ole_initializer.h',
+ '../content/app/startup_helper_win.cc',
+ '../content/common/content_switches.cc',
+ ],
+ 'mac_bundle_resources': [
+ 'app/app-Info.plist',
+ ],
+ # TODO(mark): Come up with a fancier way to do this. It should only
+ # be necessary to list app-Info.plist once, not the three times it is
+ # listed here.
+ 'mac_bundle_resources!': [
+ 'app/app-Info.plist',
+ ],
+ 'xcode_settings': {
+ 'CHROMIUM_STRIP_SAVE_FILE': 'app/app.saves',
+ 'INFOPLIST_FILE': 'app/app-Info.plist',
+ },
'conditions': [
['os_posix == 1 and OS != "mac"', {
'actions': [
@@ -470,6 +414,12 @@
'chrome_dll',
],
}],
+ ['OS=="mac" and asan==1', {
+ 'xcode_settings': {
+ # Override the outer definition of CHROMIUM_STRIP_SAVE_FILE.
+ 'CHROMIUM_STRIP_SAVE_FILE': 'app/app_asan.saves',
+ },
+ }],
['OS=="win"', {
'conditions': [
['optimize_with_syzygy==1', {
@@ -483,8 +433,6 @@
'dependencies': ['chrome_dll',]
}],
],
- }],
- ['OS=="win"', {
'dependencies': [
'chrome_version_resources',
'installer_util',
@@ -503,8 +451,37 @@
'VCLinkerTool': {
'ImportLibrary': '$(OutDir)\\lib\\chrome_exe.lib',
'ProgramDatabaseFile': '$(OutDir)\\chrome_exe.pdb',
+ 'DelayLoadDLLs': [
+ 'dbghelp.dll',
+ 'dwmapi.dll',
+ 'uxtheme.dll',
+ 'ole32.dll',
+ 'oleaut32.dll',
+ ],
+ # Set /SUBSYSTEM:WINDOWS for chrome.exe itself.
+ 'SubSystem': '2',
+ },
+ 'VCManifestTool': {
+ 'AdditionalManifestFiles': '$(ProjectDir)\\app\\chrome.exe.manifest',
},
},
+ 'actions': [
+ {
+ 'action_name': 'first_run',
+ 'inputs': [
+ 'app/FirstRun',
+ ],
+ 'outputs': [
+ '<(PRODUCT_DIR)/First Run',
+ ],
+ 'action': ['cp', '-f', '<@(_inputs)', '<@(_outputs)'],
+ 'message': 'Copy first run complete sentinel file',
+ },
+ ],
+ }, { # 'OS!="win"
+ 'sources!': [
+ 'app/client_util.cc',
+ ],
}],
],
},
@@ -516,22 +493,31 @@
'target_name': 'chrome_nacl_win64',
'type': 'executable',
'product_name': 'nacl64',
- 'variables': {
- 'chrome_exe_target': 1,
- },
+ 'sources': [
+ 'app/breakpad_win.cc',
+ 'app/hard_error_handler_win.cc',
+ 'nacl/nacl_exe_win_64.cc',
+ '../content/app/startup_helper_win.cc',
+ '../content/common/content_switches.cc',
+ '../content/common/debug_flags.cc', # Needed for sandbox_policy.cc
+ '../content/common/hi_res_timer_manager_win.cc',
+ '../content/common/sandbox_policy.cc',
+ '../content/common/sandbox_init_wrapper_win.cc',
+ '<(SHARED_INTERMEDIATE_DIR)/chrome_version/nacl64_exe_version.rc',
+ ],
'dependencies': [
- # On Windows make sure we've built Win64 version of chrome_dll,
- # which contains all of the library code with Chromium
- # functionality.
+ 'app/policy/cloud_policy_codegen.gyp:policy_win64',
'chrome_version_resources',
- 'chrome_dll_nacl_win64',
'common_constants_win64',
'installer_util_nacl_win64',
- 'app/policy/cloud_policy_codegen.gyp:policy_win64',
+ 'nacl_win64',
'../breakpad/breakpad.gyp:breakpad_handler_win64',
'../breakpad/breakpad.gyp:breakpad_sender_win64',
+ '../base/base.gyp:base_i18n_nacl_win64',
'../base/base.gyp:base_nacl_win64',
'../base/base.gyp:base_static_win64',
+ '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations_win64',
+ '../ipc/ipc.gyp:ipc_win64',
'../sandbox/sandbox.gyp:sandbox_win64',
],
'defines': [
@@ -540,13 +526,11 @@
'include_dirs': [
'<(SHARED_INTERMEDIATE_DIR)/chrome',
],
- 'sources': [
- '<(SHARED_INTERMEDIATE_DIR)/chrome_version/nacl64_exe_version.rc',
- ],
'msvs_settings': {
'VCLinkerTool': {
'ImportLibrary': '$(OutDir)\\lib\\nacl64_exe.lib',
'ProgramDatabaseFile': '$(OutDir)\\nacl64_exe.pdb',
+ 'SubSystem': '2', # Set /SUBSYSTEM:WINDOWS
},
},
'configurations': {
diff --git a/chrome/common/chrome_content_client.cc b/chrome/common/chrome_content_client.cc
index 0184555..760a266 100644
--- a/chrome/common/chrome_content_client.cc
+++ b/chrome/common/chrome_content_client.cc
@@ -17,6 +17,7 @@
#include "chrome/common/chrome_paths.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/common/chrome_version_info.h"
+#include "chrome/common/render_messages.h"
#include "content/common/pepper_plugin_registry.h"
#include "remoting/client/plugin/pepper_entrypoints.h"
#include "ui/base/l10n/l10n_util.h"
@@ -29,10 +30,6 @@
#include "sandbox/src/sandbox.h"
#endif
-#if !defined(NACL_WIN64) // The code this needs isn't linked on Win64 builds.
-#include "chrome/common/render_messages.h"
-#endif
-
namespace {
const char kPDFPluginName[] = "Chrome PDF Viewer";
@@ -61,7 +58,6 @@ const char kRemotingViewerPluginOldMimeType[] =
"pepper-application/x-chromoting";
#endif
-#if !defined(NACL_WIN64) // The code this needs isn't linked on Win64 builds.
// Appends the known built-in plugins to the given vector. Some built-in
// plugins are "internal" which means they are compiled into the Chrome binary,
// and some are extra shared libraries distributed with the browser (these are
@@ -190,8 +186,6 @@ void AddOutOfProcessFlash(std::vector<PepperPluginInfo>* plugins) {
plugins->push_back(plugin);
}
-#endif // !defined(NACL_WIN64)
-
#if defined(OS_WIN)
// Launches the privileged flash broker, used when flash is sandboxed.
// The broker is the same flash dll, except that it uses a different
@@ -276,14 +270,11 @@ void ChromeContentClient::SetGpuInfo(const GPUInfo& gpu_info) {
void ChromeContentClient::AddPepperPlugins(
std::vector<PepperPluginInfo>* plugins) {
-#if !defined(NACL_WIN64) // The code this needs isn't linked on Win64 builds.
ComputeBuiltInPlugins(plugins);
AddOutOfProcessFlash(plugins);
-#endif
}
bool ChromeContentClient::CanSendWhileSwappedOut(const IPC::Message* msg) {
-#if !defined(NACL_WIN64) // The code this needs isn't linked on Win64 builds.
// Any Chrome-specific messages that must be allowed to be sent from swapped
// out renderers.
switch (msg->type()) {
@@ -292,13 +283,11 @@ bool ChromeContentClient::CanSendWhileSwappedOut(const IPC::Message* msg) {
default:
break;
}
-#endif
return false;
}
bool ChromeContentClient::CanHandleWhileSwappedOut(
const IPC::Message& msg) {
-#if !defined(NACL_WIN64) // The code this needs isn't linked on Win64 builds.
// Any Chrome-specific messages (apart from those listed in
// CanSendWhileSwappedOut) that must be handled by the browser when sent from
// swapped out renderers.
@@ -308,7 +297,6 @@ bool ChromeContentClient::CanHandleWhileSwappedOut(
default:
break;
}
-#endif
return false;
}
@@ -321,19 +309,11 @@ std::string ChromeContentClient::GetUserAgent(bool mimic_windows) const {
}
string16 ChromeContentClient::GetLocalizedString(int message_id) const {
-#if defined(NACL_WIN64) // The code this needs isn't linked on Win64 builds.
- return string16();
-#else
return l10n_util::GetStringUTF16(message_id);
-#endif
}
base::StringPiece ChromeContentClient::GetDataResource(int resource_id) const {
-#if defined(NACL_WIN64) // The code this needs isn't linked on Win64 builds.
- return base::StringPiece();
-#else
return ResourceBundle::GetSharedInstance().GetRawDataResource(resource_id);
-#endif
}
#if defined(OS_WIN)
diff --git a/chrome/common/chrome_content_plugin_client.cc b/chrome/common/chrome_content_plugin_client.cc
index 1d38ee4..5430cbd 100644
--- a/chrome/common/chrome_content_plugin_client.cc
+++ b/chrome/common/chrome_content_plugin_client.cc
@@ -30,9 +30,7 @@ void ChromeContentPluginClient::PluginProcessStarted(
base::mac::SetProcessName(process_name);
#endif
-#if !defined(NACL_WIN64) // We don't link this in the NaCl 64 bit binary.
chrome::RegisterInternalDefaultPlugin();
-#endif
}
} // namespace chrome
diff --git a/chrome/common/chrome_version_info.cc b/chrome/common/chrome_version_info.cc
index 9f506a9..4e5d1f0 100644
--- a/chrome/common/chrome_version_info.cc
+++ b/chrome/common/chrome_version_info.cc
@@ -92,7 +92,6 @@ bool VersionInfo::IsOfficialBuild() const {
std::string VersionInfo::CreateVersionString() const {
std::string current_version;
-#if !defined(NACL_WIN64)
if (is_valid()) {
current_version += Version();
#if !defined(GOOGLE_CHROME_BUILD)
@@ -108,7 +107,6 @@ std::string VersionInfo::CreateVersionString() const {
if (!modifier.empty())
current_version += " " + modifier;
}
-#endif // !defined(NACL_WIN64)
return current_version;
}
diff --git a/chrome/common/googleurl_dummy.cc b/chrome/common/googleurl_dummy.cc
deleted file mode 100644
index f55c263..0000000
--- a/chrome/common/googleurl_dummy.cc
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (c) 2010 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.
-
-namespace url_util {
-
-// A dummy version of the url_util function called by url_constants.cc for all
-// process types. For some processes, we don't want to link against googleurl.
-// rather than having complicated versions of that library (32 and 64 bit ones
-// on Windows) we just instead link this file in cases where googleurl isn't
-// otherwise necessary.
-void AddStandardScheme(const char* new_scheme) {
-}
-
-void LockStandardSchemes() {
-}
-
-} // namespace url_util
diff --git a/chrome/common/nacl_cmd_line.cc b/chrome/common/nacl_cmd_line.cc
index 4c2f19f..0da6f96 100644
--- a/chrome/common/nacl_cmd_line.cc
+++ b/chrome/common/nacl_cmd_line.cc
@@ -5,14 +5,11 @@
#include "base/command_line.h"
#include "chrome/common/chrome_constants.h"
#include "chrome/common/chrome_switches.h"
-#include "chrome/common/logging_chrome.h"
namespace nacl {
void CopyNaClCommandLineArguments(CommandLine* cmd_line) {
const CommandLine& browser_command_line = *CommandLine::ForCurrentProcess();
- if (logging::DialogsAreSuppressed())
- cmd_line->AppendSwitch(switches::kNoErrorDialogs);
// Propagate the following switches to the NaCl loader command line (along
// with any associated values) if present in the browser command line.
@@ -31,6 +28,7 @@ void CopyNaClCommandLineArguments(CommandLine* cmd_line) {
switches::kEnableNaClDebug,
switches::kNaClDebugPorts,
switches::kNaClDebugIP,
+ switches::kNoErrorDialogs,
};
cmd_line->CopySwitchesFrom(browser_command_line, kSwitchNames,
arraysize(kSwitchNames));
diff --git a/chrome/installer/mini_installer.gyp b/chrome/installer/mini_installer.gyp
index 2854633..6c41bd3 100644
--- a/chrome/installer/mini_installer.gyp
+++ b/chrome/installer/mini_installer.gyp
@@ -192,7 +192,6 @@
'<(PRODUCT_DIR)/chrome.exe',
'<(PRODUCT_DIR)/chrome.dll',
'<(PRODUCT_DIR)/nacl64.exe',
- '<(PRODUCT_DIR)/nacl64.dll',
'<(PRODUCT_DIR)/ppGoogleNaClPluginChrome.dll',
'<(PRODUCT_DIR)/nacl_irt_x86_32.nexe',
'<(PRODUCT_DIR)/nacl_irt_x86_64.nexe',
diff --git a/chrome/installer/mini_installer/chrome.release b/chrome/installer/mini_installer/chrome.release
index aab00a3..540b454 100644
--- a/chrome/installer/mini_installer/chrome.release
+++ b/chrome/installer/mini_installer/chrome.release
@@ -33,7 +33,6 @@ wow_helper.exe: %(ChromeDir)s\
Dictionaries\en-US.bdic: %(ChromeDir)s\Dictionaries
chrome.dll: %(VersionDir)s\
nacl64.exe: %(VersionDir)s\
-nacl64.dll: %(VersionDir)s\
ppGoogleNaClPluginChrome.dll: %(VersionDir)s\
nacl_irt_x86_32.nexe: %(VersionDir)s\
nacl_irt_x86_64.nexe: %(VersionDir)s\
diff --git a/chrome/installer/util/util_constants.cc b/chrome/installer/util/util_constants.cc
index 199eece..c470faf 100644
--- a/chrome/installer/util/util_constants.cc
+++ b/chrome/installer/util/util_constants.cc
@@ -164,7 +164,6 @@ const wchar_t kChromeFrameHelperExe[] = L"chrome_frame_helper.exe";
const wchar_t kChromeFrameHelperWndClass[] = L"ChromeFrameHelperWindowClass";
const wchar_t kChromeFrameReadyModeField[] = L"ChromeFrameReadyMode";
const wchar_t kChromeLauncherExe[] = L"chrome_launcher.exe";
-const wchar_t kChromeNaCl64Dll[] = L"nacl64.dll";
const wchar_t kChromeNewExe[] = L"new_chrome.exe";
const wchar_t kChromeOldExe[] = L"old_chrome.exe";
const wchar_t kCmdQuickEnableCf[] = L"quick-enable-cf";
diff --git a/chrome/installer/util/util_constants.h b/chrome/installer/util/util_constants.h
index d851359..95d79df 100644
--- a/chrome/installer/util/util_constants.h
+++ b/chrome/installer/util/util_constants.h
@@ -168,7 +168,6 @@ extern const wchar_t kChromeFrameHelperExe[];
extern const wchar_t kChromeFrameHelperWndClass[];
extern const wchar_t kChromeFrameReadyModeField[];
extern const wchar_t kChromeLauncherExe[];
-extern const wchar_t kChromeNaCl64Dll[];
extern const wchar_t kChromeOldExe[];
extern const wchar_t kChromeNewExe[];
extern const wchar_t kCmdQuickEnableCf[];
diff --git a/chrome/nacl.gypi b/chrome/nacl.gypi
index d8591b0..86a5467 100644
--- a/chrome/nacl.gypi
+++ b/chrome/nacl.gypi
@@ -66,9 +66,6 @@
'python build_nacl_irt.py --inputs',
},
'dependencies': [
- # TODO(gregoryd): chrome_resources and chrome_strings could be
- # shared with the 64-bit target, but it does not work due to a gyp
- #issue
'chrome_resources',
'chrome_strings',
'common',
@@ -149,18 +146,17 @@
'nacl_target': 1,
},
'dependencies': [
- # TODO(gregoryd): chrome_resources and chrome_strings could be
- # shared with the 32-bit target, but it does not work due to a gyp
- #issue
- 'chrome_resources',
- 'chrome_strings',
- 'common_nacl_win64',
'../native_client/src/trusted/service_runtime/service_runtime.gyp:sel64',
'../native_client/src/trusted/platform_qualify/platform_qualify.gyp:platform_qual_lib64',
],
'sources': [
- 'nacl/broker_thread.cc',
- 'nacl/broker_thread.h',
+ 'common/nacl_cmd_line.cc',
+ 'common/nacl_messages.cc',
+ 'nacl/nacl_broker_listener.cc',
+ 'nacl/nacl_broker_listener.h',
+ ],
+ 'include_dirs': [
+ '..',
],
'defines': [
'<@(nacl_win64_defines)',
diff --git a/chrome/nacl/broker_thread.cc b/chrome/nacl/nacl_broker_listener.cc
index dad7f3a..cf2b8a0 100644
--- a/chrome/nacl/broker_thread.cc
+++ b/chrome/nacl/nacl_broker_listener.cc
@@ -2,35 +2,45 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "chrome/nacl/broker_thread.h"
+#include "chrome/nacl/nacl_broker_listener.h"
#include "base/base_switches.h"
#include "base/command_line.h"
+#include "base/message_loop.h"
#include "base/path_service.h"
#include "base/process_util.h"
-#include "chrome/common/chrome_switches.h"
#include "chrome/common/nacl_cmd_line.h"
#include "chrome/common/nacl_messages.h"
-#include "content/common/child_process.h"
+#include "content/common/content_switches.h"
#include "content/common/sandbox_policy.h"
#include "ipc/ipc_switches.h"
-NaClBrokerThread::NaClBrokerThread()
- : browser_handle_(0),
- broker_services_(NULL) {
+NaClBrokerListener::NaClBrokerListener()
+ : browser_handle_(base::kNullProcessHandle) {
}
-NaClBrokerThread::~NaClBrokerThread() {
+NaClBrokerListener::~NaClBrokerListener() {
base::CloseProcessHandle(browser_handle_);
}
-NaClBrokerThread* NaClBrokerThread::current() {
- return static_cast<NaClBrokerThread*>(ChildThread::current());
+void NaClBrokerListener::Listen() {
+ std::string channel_name =
+ CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
+ switches::kProcessChannelID);
+ channel_.reset(new IPC::Channel(
+ channel_name, IPC::Channel::MODE_CLIENT, this));
+ CHECK(channel_->Connect());
+ MessageLoop::current()->Run();
}
-bool NaClBrokerThread::OnControlMessageReceived(const IPC::Message& msg) {
+void NaClBrokerListener::OnChannelConnected(int32 peer_pid) {
+ bool res = base::OpenProcessHandle(peer_pid, &browser_handle_);
+ CHECK(res);
+}
+
+bool NaClBrokerListener::OnMessageReceived(const IPC::Message& msg) {
bool handled = true;
- IPC_BEGIN_MESSAGE_MAP(NaClBrokerThread, msg)
+ IPC_BEGIN_MESSAGE_MAP(NaClBrokerListener, msg)
IPC_MESSAGE_HANDLER(NaClProcessMsg_LaunchLoaderThroughBroker,
OnLaunchLoaderThroughBroker)
IPC_MESSAGE_HANDLER(NaClProcessMsg_StopBroker, OnStopBroker)
@@ -39,7 +49,7 @@ bool NaClBrokerThread::OnControlMessageReceived(const IPC::Message& msg) {
return handled;
}
-void NaClBrokerThread::OnLaunchLoaderThroughBroker(
+void NaClBrokerListener::OnLaunchLoaderThroughBroker(
const std::wstring& loader_channel_id) {
base::ProcessHandle loader_process = 0;
base::ProcessHandle loader_handle_in_browser = 0;
@@ -62,21 +72,14 @@ void NaClBrokerThread::OnLaunchLoaderThroughBroker(
loader_process = sandbox::StartProcessWithAccess(cmd_line, FilePath());
if (loader_process) {
DuplicateHandle(::GetCurrentProcess(), loader_process,
- browser_handle_, &loader_handle_in_browser,
- PROCESS_DUP_HANDLE | PROCESS_QUERY_INFORMATION , FALSE, 0);
+ browser_handle_, &loader_handle_in_browser,
+ PROCESS_DUP_HANDLE | PROCESS_QUERY_INFORMATION , FALSE, 0);
}
}
- Send(new NaClProcessMsg_LoaderLaunched(loader_channel_id,
- loader_handle_in_browser));
+ channel_->Send(new NaClProcessMsg_LoaderLaunched(loader_channel_id,
+ loader_handle_in_browser));
}
-void NaClBrokerThread::OnStopBroker() {
- ChildProcess::current()->ReleaseProcess();
+void NaClBrokerListener::OnStopBroker() {
+ MessageLoop::current()->Quit();
}
-
-void NaClBrokerThread::OnChannelConnected(int32 peer_pid) {
- bool res = base::OpenProcessHandle(peer_pid, &browser_handle_);
- DCHECK(res);
- ChildProcess::current()->AddRefProcess();
-}
-
diff --git a/chrome/nacl/broker_thread.h b/chrome/nacl/nacl_broker_listener.h
index b0a05b9..1581c6d 100644
--- a/chrome/nacl/broker_thread.h
+++ b/chrome/nacl/nacl_broker_listener.h
@@ -2,40 +2,37 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CHROME_NACL_BROKER_THREAD_H_
-#define CHROME_NACL_BROKER_THREAD_H_
+#ifndef CHROME_NACL_NACL_BROKER_LISTENER_H_
+#define CHROME_NACL_NACL_BROKER_LISTENER_H_
#pragma once
+#include "base/memory/scoped_ptr.h"
#include "base/process.h"
#include "chrome/common/nacl_types.h"
-#include "content/common/child_thread.h"
-
-#if defined(OS_WIN)
-#include "sandbox/src/sandbox.h"
-#endif
+#include "ipc/ipc_channel.h"
// The BrokerThread class represents the thread that handles the messages from
// the browser process and starts NaCl loader processes.
-class NaClBrokerThread : public ChildThread {
+class NaClBrokerListener : public IPC::Channel::Listener {
public:
- NaClBrokerThread();
- ~NaClBrokerThread();
- // Returns the one NaCl thread.
- static NaClBrokerThread* current();
+ NaClBrokerListener();
+ ~NaClBrokerListener();
+
+ void Listen();
// IPC::Channel::Listener implementation.
virtual void OnChannelConnected(int32 peer_pid) OVERRIDE;
+ virtual bool OnMessageReceived(const IPC::Message& msg) OVERRIDE;
private:
- virtual bool OnControlMessageReceived(const IPC::Message& msg);
void OnLaunchLoaderThroughBroker(const std::wstring& loader_channel_id);
void OnShareBrowserHandle(int browser_handle);
void OnStopBroker();
base::ProcessHandle browser_handle_;
- sandbox::BrokerServices* broker_services_;
+ scoped_ptr<IPC::Channel> channel_;
- DISALLOW_COPY_AND_ASSIGN(NaClBrokerThread);
+ DISALLOW_COPY_AND_ASSIGN(NaClBrokerListener);
};
-#endif // CHROME_NACL_BROKER_THREAD_H_
+#endif // CHROME_NACL_NACL_BROKER_LISTENER_H_
diff --git a/chrome/nacl/nacl_exe_win_64.cc b/chrome/nacl/nacl_exe_win_64.cc
new file mode 100644
index 0000000..834fc37
--- /dev/null
+++ b/chrome/nacl/nacl_exe_win_64.cc
@@ -0,0 +1,105 @@
+// Copyright (c) 2011 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 "base/at_exit.h"
+#include "base/command_line.h"
+#include "base/logging.h"
+#include "base/message_loop.h"
+#include "base/process_util.h"
+#include "base/string_util.h"
+#include "base/system_monitor/system_monitor.h"
+#include "chrome/app/breakpad_win.h"
+#include "chrome/common/chrome_result_codes.h"
+#include "chrome/common/chrome_switches.h"
+#include "chrome/common/logging_chrome.h"
+#include "chrome/nacl/nacl_broker_listener.h"
+#include "chrome/nacl/nacl_listener.h"
+#include "chrome/nacl/nacl_main_platform_delegate.h"
+#include "content/app/startup_helper_win.h"
+#include "content/common/hi_res_timer_manager.h"
+#include "content/common/main_function_params.h"
+#include "content/common/sandbox_init_wrapper.h"
+#include "content/common/sandbox_policy.h"
+#include "sandbox/src/sandbox.h"
+#include "sandbox/src/sandbox_types.h"
+
+extern int NaClMain(const MainFunctionParams&);
+
+// main() routine for the NaCl broker process.
+// This is necessary for supporting NaCl in Chrome on Win64.
+int NaClBrokerMain(const MainFunctionParams& parameters) {
+ const CommandLine& parsed_command_line = parameters.command_line_;
+
+ MessageLoopForIO main_message_loop;
+ base::PlatformThread::SetName("CrNaClBrokerMain");
+
+ base::SystemMonitor system_monitor;
+ HighResolutionTimerManager hi_res_timer_manager;
+
+ // NOTE: this code is duplicated from browser_main.cc
+ // IMPORTANT: This piece of code needs to run as early as possible in the
+ // process because it will initialize the sandbox broker, which requires the
+ // process to swap its window station. During this time all the UI will be
+ // broken. This has to run before threads and windows are created.
+ sandbox::BrokerServices* broker_services =
+ parameters.sandbox_info_.BrokerServices();
+ if (broker_services) {
+ sandbox::InitBrokerServices(broker_services);
+ if (!parsed_command_line.HasSwitch(switches::kNoSandbox)) {
+ bool use_winsta = !parsed_command_line.HasSwitch(
+ switches::kDisableAltWinstation);
+ // Precreate the desktop and window station used by the renderers.
+ sandbox::TargetPolicy* policy = broker_services->CreatePolicy();
+ sandbox::ResultCode result = policy->CreateAlternateDesktop(use_winsta);
+ CHECK(sandbox::SBOX_ERROR_FAILED_TO_SWITCH_BACK_WINSTATION != result);
+ policy->Release();
+ }
+ }
+
+ NaClBrokerListener listener;
+ listener.Listen();
+
+ return 0;
+}
+
+int APIENTRY wWinMain(HINSTANCE instance, HINSTANCE, wchar_t*, int) {
+ sandbox::SandboxInterfaceInfo sandbox_info = {0};
+ content::InitializeSandboxInfo(&sandbox_info);
+
+ base::AtExitManager exit_manager;
+ CommandLine::Init(0, NULL);
+
+ wchar_t path[MAX_PATH];
+ ::GetModuleFileNameW(NULL, path, MAX_PATH);
+ InitCrashReporterWithDllPath(std::wstring(path));
+
+ const CommandLine& command_line = *CommandLine::ForCurrentProcess();
+ std::string process_type =
+ command_line.GetSwitchValueASCII(switches::kProcessType);
+
+ // Copy what ContentMain() does.
+ base::EnableTerminationOnHeapCorruption();
+ base::EnableTerminationOnOutOfMemory();
+ content::RegisterInvalidParamHandler();
+ content::SetupCRT(command_line);
+
+ // Initialize the sandbox for this process.
+ SandboxInitWrapper sandbox_wrapper;
+ sandbox_wrapper.SetServices(&sandbox_info);
+ bool sandbox_initialized_ok =
+ sandbox_wrapper.InitializeSandbox(command_line, process_type);
+ // Die if the sandbox can't be enabled.
+ CHECK(sandbox_initialized_ok) << "Error initializing sandbox for "
+ << process_type;
+ MainFunctionParams main_params(command_line, sandbox_wrapper, NULL);
+
+ if (process_type == switches::kNaClLoaderProcess)
+ return NaClMain(main_params);
+
+ if (process_type == switches::kNaClBrokerProcess)
+ return NaClBrokerMain(main_params);
+
+ CHECK(false) << "Unknown NaCl 64 process.";
+ return -1;
+}
diff --git a/chrome/nacl/nacl_helper_linux.cc b/chrome/nacl/nacl_helper_linux.cc
index 7ffeadb..3f8646f 100644
--- a/chrome/nacl/nacl_helper_linux.cc
+++ b/chrome/nacl/nacl_helper_linux.cc
@@ -47,8 +47,8 @@ void BecomeNaClLoader(const std::vector<int>& child_fds) {
}
MessageLoopForIO main_message_loop;
- NaClListener *listener = new NaClListener();
- listener->Listen();
+ NaClListener listener;
+ listener.Listen();
_exit(0);
}
diff --git a/chrome/nacl/nacl_listener.h b/chrome/nacl/nacl_listener.h
index 336cb59..f0d275e 100644
--- a/chrome/nacl/nacl_listener.h
+++ b/chrome/nacl/nacl_listener.h
@@ -15,17 +15,19 @@
// request to start a NaCl module.
class NaClListener : public IPC::Channel::Listener {
public:
- explicit NaClListener();
+ NaClListener();
virtual ~NaClListener();
// Listen for a request to launch a NaCl module.
void Listen();
void set_debug_enabled(bool value) {debug_enabled_ = value;}
+
private:
- bool debug_enabled_;
void OnStartSelLdr(std::vector<nacl::FileDescriptor> handles,
bool have_irt_file);
virtual bool OnMessageReceived(const IPC::Message& msg);
+ bool debug_enabled_;
+
DISALLOW_COPY_AND_ASSIGN(NaClListener);
};
diff --git a/chrome/nacl/nacl_main.cc b/chrome/nacl/nacl_main.cc
index 92f26ee..4b3caae 100644
--- a/chrome/nacl/nacl_main.cc
+++ b/chrome/nacl/nacl_main.cc
@@ -4,89 +4,28 @@
#include "build/build_config.h"
-#if defined(OS_WIN)
-#include <windows.h>
-#endif
-
#include "base/command_line.h"
#include "base/message_loop.h"
-#include "base/string_util.h"
#include "base/system_monitor/system_monitor.h"
-#include "chrome/common/chrome_constants.h"
#include "chrome/common/chrome_result_codes.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/common/logging_chrome.h"
#include "chrome/nacl/nacl_listener.h"
#include "chrome/nacl/nacl_main_platform_delegate.h"
#include "content/common/child_process.h"
-#include "content/common/child_process_info.h"
#include "content/common/hi_res_timer_manager.h"
#include "content/common/main_function_params.h"
-#include "content/common/sandbox_policy.h"
-#include "ipc/ipc_switches.h"
-
-#if defined(OS_WIN)
-#include "chrome/nacl/broker_thread.h"
-#include "sandbox/src/sandbox.h"
-#endif
-
-#ifdef _WIN64
-
-// main() routine for the NaCl broker process.
-// This is necessary for supporting NaCl in Chrome on Win64.
-int NaClBrokerMain(const MainFunctionParams& parameters) {
- // The main thread of the broker.
- MessageLoopForIO main_message_loop;
- base::PlatformThread::SetName("CrNaClBrokerMain");
-
- base::SystemMonitor system_monitor;
- HighResolutionTimerManager hi_res_timer_manager;
-
- const CommandLine& parsed_command_line = parameters.command_line_;
-
- DVLOG(1) << "Started NaCL broker with "
- << parsed_command_line.GetCommandLineString();
-
- // NOTE: this code is duplicated from browser_main.cc
- // IMPORTANT: This piece of code needs to run as early as possible in the
- // process because it will initialize the sandbox broker, which requires the
- // process to swap its window station. During this time all the UI will be
- // broken. This has to run before threads and windows are created.
- sandbox::BrokerServices* broker_services =
- parameters.sandbox_info_.BrokerServices();
- if (broker_services) {
- sandbox::InitBrokerServices(broker_services);
- if (!parsed_command_line.HasSwitch(switches::kNoSandbox)) {
- bool use_winsta = !parsed_command_line.HasSwitch(
- switches::kDisableAltWinstation);
- // Precreate the desktop and window station used by the renderers.
- sandbox::TargetPolicy* policy = broker_services->CreatePolicy();
- sandbox::ResultCode result = policy->CreateAlternateDesktop(use_winsta);
- CHECK(sandbox::SBOX_ERROR_FAILED_TO_SWITCH_BACK_WINSTATION != result);
- policy->Release();
- }
- }
-
- {
- ChildProcess broker_process;
- broker_process.set_main_thread(new NaClBrokerThread());
- MessageLoop::current()->Run();
- }
-
- return 0;
-}
-#else
-int NaClBrokerMain(const MainFunctionParams& parameters) {
- return chrome::RESULT_CODE_BAD_PROCESS_TYPE;
-}
-#endif // _WIN64
// This function provides some ways to test crash and assertion handling
// behavior of the renderer.
static void HandleNaClTestParameters(const CommandLine& command_line) {
+// The message box doesn't work in the 64 bit binaries anyways, so no need to
+// link to it since the 64 bit binary doesn't link with chrome or content.
+#if !defined(NACL_WIN64)
if (command_line.HasSwitch(switches::kNaClStartupDialog)) {
ChildProcess::WaitForDebugger("NativeClient");
}
+#endif
}
// main() routine for the NaCl loader process.
diff --git a/chrome/nacl/nacl_main_platform_delegate_win.cc b/chrome/nacl/nacl_main_platform_delegate_win.cc
index aba8481..97ba3af 100644
--- a/chrome/nacl/nacl_main_platform_delegate_win.cc
+++ b/chrome/nacl/nacl_main_platform_delegate_win.cc
@@ -8,7 +8,6 @@
#include "base/file_path.h"
#include "base/logging.h"
#include "base/native_library.h"
-#include "chrome/common/chrome_constants.h"
#include "chrome/common/chrome_switches.h"
#include "sandbox/src/sandbox.h"
diff --git a/chrome/tools/build/win/FILES b/chrome/tools/build/win/FILES
index 338415b..d133c9e 100644
--- a/chrome/tools/build/win/FILES
+++ b/chrome/tools/build/win/FILES
@@ -4,7 +4,6 @@ avutil-51.dll
chrome.exe
nacl64.exe
chrome.dll
-nacl64.dll
crash_service.exe
crash_service64.exe
First Run
diff --git a/chrome/tools/build/win/FILES.cfg b/chrome/tools/build/win/FILES.cfg
index 096d2c6..ce99eae 100644
--- a/chrome/tools/build/win/FILES.cfg
+++ b/chrome/tools/build/win/FILES.cfg
@@ -46,11 +46,6 @@ FILES = [
'buildtype': ['dev', 'official'],
},
{
- 'filename': 'nacl64.dll',
- 'arch': ['32bit', '64bit'],
- 'buildtype': ['dev', 'official'],
- },
- {
'filename': 'crash_service.exe',
'arch': ['32bit', '64bit'],
'buildtype': ['dev', 'official'],
diff --git a/chrome/tools/build/win/SYMBOLS b/chrome/tools/build/win/SYMBOLS
index f599797..2f53567 100644
--- a/chrome/tools/build/win/SYMBOLS
+++ b/chrome/tools/build/win/SYMBOLS
@@ -3,7 +3,6 @@ chrome_exe.pdb
libEGL.pdb
libGLESv2.pdb
mini_installer.pdb
-nacl64_dll.pdb
nacl64_exe.pdb
ppGoogleNaClPluginChrome.pdb
setup.pdb
diff --git a/content/app/content_main.cc b/content/app/content_main.cc
index 78e1af5..e40dca9 100644
--- a/content/app/content_main.cc
+++ b/content/app/content_main.cc
@@ -5,7 +5,6 @@
#include "content/app/content_main.h"
#include "base/at_exit.h"
-#include "base/base_switches.h"
#include "base/command_line.h"
#include "base/debug/debugger.h"
#include "base/i18n/icu_util.h"
@@ -17,6 +16,7 @@
#include "base/stringprintf.h"
#include "base/string_number_conversions.h"
#include "content/app/content_main_delegate.h"
+#include "content/app/startup_helper_win.h"
#include "content/common/content_constants.h"
#include "content/common/content_paths.h"
#include "content/common/content_switches.h"
@@ -31,7 +31,6 @@
#if defined(OS_WIN)
#include <atlbase.h>
#include <atlapp.h>
-#include <new.h>
#include <malloc.h>
#elif defined(OS_MACOSX)
#include "base/mach_ipc_mac.h"
@@ -76,31 +75,6 @@ namespace {
static CAppModule _Module;
-#pragma optimize("", off)
-// Handlers for invalid parameter and pure call. They generate a breakpoint to
-// tell breakpad that it needs to dump the process.
-void InvalidParameter(const wchar_t* expression, const wchar_t* function,
- const wchar_t* file, unsigned int line,
- uintptr_t reserved) {
- __debugbreak();
- _exit(1);
-}
-
-void PureCall() {
- __debugbreak();
- _exit(1);
-}
-#pragma optimize("", on)
-
-// Register the invalid param handler and pure call handler to be able to
-// notify breakpad when it happens.
-void RegisterInvalidParamHandler() {
- _set_invalid_parameter_handler(InvalidParameter);
- _set_purecall_handler(PureCall);
- // Also enable the new handler for malloc() based failures.
- _set_new_mode(1);
-}
-
#elif defined(OS_MACOSX)
// Completes the Mach IPC handshake by sending this process' task port to the
@@ -154,19 +128,6 @@ void SetupSignalHandlers() {
#endif // OS_POSIX
-void SetupCRT(const CommandLine& command_line) {
-#if defined(OS_WIN)
-#if defined(_CRTDBG_MAP_ALLOC)
- _CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDERR);
- _CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE);
-#else
- if (!command_line.HasSwitch(switches::kDisableBreakpad)) {
- _CrtSetReportMode(_CRT_ASSERT, 0);
- }
-#endif
-#endif
-}
-
void CommonSubprocessInit(const std::string& process_type) {
#if defined(OS_WIN)
// HACK: Let Windows know that we have started. This is needed to suppress
@@ -319,7 +280,7 @@ int ContentMain(HINSTANCE instance,
int argc = 0;
char** argv = NULL;
- RegisterInvalidParamHandler();
+ content::RegisterInvalidParamHandler();
_Module.Init(NULL, static_cast<HINSTANCE>(instance));
#else
int ContentMain(int argc,
@@ -392,6 +353,8 @@ int ContentMain(int argc,
(!delegate || delegate->ShouldSendMachPort(process_type))) {
SendTaskPortToParentProcess();
}
+#elif defined(OS_WIN)
+ content::SetupCRT(command_line);
#endif
#if defined(OS_POSIX)
@@ -412,8 +375,6 @@ int ContentMain(int argc,
}
#endif
- SetupCRT(command_line);
-
#if defined(USE_NSS)
crypto::EarlySetupForNSSInit();
#endif
diff --git a/content/app/sandbox_helper_win.cc b/content/app/sandbox_helper_win.cc
deleted file mode 100644
index a817e08..0000000
--- a/content/app/sandbox_helper_win.cc
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (c) 2011 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 "content/app/content_main.h"
-
-#include "base/win/windows_version.h"
-#include "sandbox/src/dep.h"
-#include "sandbox/src/sandbox_factory.h"
-
-namespace content {
-
-void InitializeSandboxInfo(sandbox::SandboxInterfaceInfo* info) {
- info->broker_services = sandbox::SandboxFactory::GetBrokerServices();
- if (!info->broker_services)
- info->target_services = sandbox::SandboxFactory::GetTargetServices();
-
- if (base::win::GetVersion() < base::win::VERSION_VISTA) {
- // Enforces strong DEP support. Vista uses the NXCOMPAT flag in the exe.
- sandbox::SetCurrentProcessDEP(sandbox::DEP_ENABLED);
- }
-}
-
-} // namespace content
diff --git a/content/app/sandbox_helper_win.h b/content/app/sandbox_helper_win.h
deleted file mode 100644
index 4fc736d..0000000
--- a/content/app/sandbox_helper_win.h
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (c) 2011 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.
-
-#ifndef CONTENT_APP_SANDBOX_HELPER_WIN_H_
-#define CONTENT_APP_SANDBOX_HELPER_WIN_H_
-#pragma once
-
-namespace sandbox {
-struct SandboxInterfaceInfo;
-}
-
-namespace content {
-
-// Initializes the sandbox code and turns on DEP.
-void InitializeSandboxInfo(sandbox::SandboxInterfaceInfo* sandbox_info);
-
-} // namespace content
-
-#endif // CONTENT_APP_SANDBOX_HELPER_WIN_H_
diff --git a/content/app/startup_helper_win.cc b/content/app/startup_helper_win.cc
new file mode 100644
index 0000000..8e1a32b
--- /dev/null
+++ b/content/app/startup_helper_win.cc
@@ -0,0 +1,69 @@
+// Copyright (c) 2011 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 "content/app/startup_helper_win.h"
+
+#include <crtdbg.h>
+#include <new.h>
+
+#include "base/base_switches.h"
+#include "base/command_line.h"
+#include "base/win/windows_version.h"
+#include "sandbox/src/dep.h"
+#include "sandbox/src/sandbox_factory.h"
+
+namespace {
+
+#pragma optimize("", off)
+// Handlers for invalid parameter and pure call. They generate a breakpoint to
+// tell breakpad that it needs to dump the process.
+void InvalidParameter(const wchar_t* expression, const wchar_t* function,
+ const wchar_t* file, unsigned int line,
+ uintptr_t reserved) {
+ __debugbreak();
+ _exit(1);
+}
+
+void PureCall() {
+ __debugbreak();
+ _exit(1);
+}
+#pragma optimize("", on)
+
+} // namespace
+
+namespace content {
+
+void InitializeSandboxInfo(sandbox::SandboxInterfaceInfo* info) {
+ info->broker_services = sandbox::SandboxFactory::GetBrokerServices();
+ if (!info->broker_services)
+ info->target_services = sandbox::SandboxFactory::GetTargetServices();
+
+ if (base::win::GetVersion() < base::win::VERSION_VISTA) {
+ // Enforces strong DEP support. Vista uses the NXCOMPAT flag in the exe.
+ sandbox::SetCurrentProcessDEP(sandbox::DEP_ENABLED);
+ }
+}
+
+// Register the invalid param handler and pure call handler to be able to
+// notify breakpad when it happens.
+void RegisterInvalidParamHandler() {
+ _set_invalid_parameter_handler(InvalidParameter);
+ _set_purecall_handler(PureCall);
+ // Also enable the new handler for malloc() based failures.
+ _set_new_mode(1);
+}
+
+void SetupCRT(const CommandLine& command_line) {
+#if defined(_CRTDBG_MAP_ALLOC)
+ _CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDERR);
+ _CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE);
+#else
+ if (!command_line.HasSwitch(switches::kDisableBreakpad)) {
+ _CrtSetReportMode(_CRT_ASSERT, 0);
+ }
+#endif
+}
+
+} // namespace content
diff --git a/content/app/startup_helper_win.h b/content/app/startup_helper_win.h
new file mode 100644
index 0000000..5898e36
--- /dev/null
+++ b/content/app/startup_helper_win.h
@@ -0,0 +1,31 @@
+// Copyright (c) 2011 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.
+
+#ifndef CONTENT_APP_STARTUP_HELPER_WIN_H_
+#define CONTENT_APP_STARTUP_HELPER_WIN_H_
+#pragma once
+
+class CommandLine;
+
+namespace sandbox {
+struct SandboxInterfaceInfo;
+}
+
+// This file contains functions that any embedder that's not using ContentMain
+// will want to call at startup.
+namespace content {
+
+// Initializes the sandbox code and turns on DEP.
+void InitializeSandboxInfo(sandbox::SandboxInterfaceInfo* sandbox_info);
+
+// Register the invalid param handler and pure call handler to be able to
+// notify breakpad when it happens.
+void RegisterInvalidParamHandler();
+
+// Sets up the CRT's debugging macros to output to stdout.
+void SetupCRT(const CommandLine& command_line);
+
+} // namespace content
+
+#endif // CONTENT_APP_STARTUP_HELPER_WIN_H_
diff --git a/content/common/child_thread.cc b/content/common/child_thread.cc
index 9aea6a1e..95d0080 100644
--- a/content/common/child_thread.cc
+++ b/content/common/child_thread.cc
@@ -59,12 +59,7 @@ void ChildThread::Init() {
sync_message_filter_ =
new IPC::SyncMessageFilter(ChildProcess::current()->GetShutDownEvent());
channel_->AddFilter(sync_message_filter_.get());
-
-#if !defined(NACL_WIN64)
- // This brings in a depenency on gpu, which isn't linked in with NaCl's win64
- // build.
channel_->AddFilter(new ChildTraceMessageFilter());
-#endif
// When running in unit tests, there is already a NotificationService object.
// Since only one can exist at a time per thread, check first.
diff --git a/content/common/content_message_generator.h b/content/common/content_message_generator.h
index c34cfcb..881eb7b 100644
--- a/content/common/content_message_generator.h
+++ b/content/common/content_message_generator.h
@@ -6,9 +6,6 @@
#include "content/common/child_process_messages.h"
-// NaCl's 64 bit Windows build only links with a bare-minimum number of
-// libraries.
-#if !defined(NACL_WIN64)
#include "content/common/appcache_messages.h"
#include "content/common/clipboard_messages.h"
#include "content/common/database_messages.h"
@@ -38,4 +35,3 @@
#include "content/common/view_messages.h"
#include "content/common/webblob_messages.h"
#include "content/common/worker_messages.h"
-#endif
diff --git a/content/common/file_system/file_system_dispatcher_dummy.cc b/content/common/file_system/file_system_dispatcher_dummy.cc
deleted file mode 100644
index c7f567f..0000000
--- a/content/common/file_system/file_system_dispatcher_dummy.cc
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (c) 2011 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 "content/common/file_system/file_system_dispatcher.h"
-
-#include "base/compiler_specific.h"
-
-// FileSystemDispatcher --------------------------------------------------------
-
-FileSystemDispatcher::FileSystemDispatcher() {
-}
-
-FileSystemDispatcher::~FileSystemDispatcher() {
-}
-
-// FileSystemDispatcher implementation -----------------------------------------
-
-bool FileSystemDispatcher::OnMessageReceived(const IPC::Message& message) {
- return false;
-}
diff --git a/content/common/quota_dispatcher_dummy.cc b/content/common/quota_dispatcher_dummy.cc
deleted file mode 100644
index 7eec28b..0000000
--- a/content/common/quota_dispatcher_dummy.cc
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (c) 2011 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 "content/common/quota_dispatcher.h"
-
-#include "base/compiler_specific.h"
-
-// QuotaDispatcher -------------------------------------------------------------
-
-QuotaDispatcher::QuotaDispatcher() {
-}
-
-QuotaDispatcher::~QuotaDispatcher() {
-}
-
-// QuotaDispatcher implementation ----------------------------------------------
-
-bool QuotaDispatcher::OnMessageReceived(const IPC::Message& message) {
- return false;
-}
diff --git a/content/common/resource_dispatcher_dummy.cc b/content/common/resource_dispatcher_dummy.cc
deleted file mode 100644
index 5998027..0000000
--- a/content/common/resource_dispatcher_dummy.cc
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (c) 2006-2008 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.
-
-// See http://dev.chromium.org/developers/design-documents/multi-process-resource-loading
-
-#include "content/common/resource_dispatcher.h"
-
-#include "base/compiler_specific.h"
-
-// ResourceDispatcher ---------------------------------------------------------
-
-ResourceDispatcher::ResourceDispatcher(IPC::Message::Sender* sender)
- : message_sender_(sender),
- ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)) {
-}
-
-ResourceDispatcher::~ResourceDispatcher() {
-}
-
-// ResourceDispatcher implementation ------------------------------------------
-
-bool ResourceDispatcher::OnMessageReceived(const IPC::Message& message) {
- return false;
-}
-
-webkit_glue::ResourceLoaderBridge* ResourceDispatcher::CreateBridge(
- const webkit_glue::ResourceLoaderBridge::RequestInfo& request_info) {
- // This function is used only by plugin and renderer code, so it should
- // never be called in a 64-bit Windows process.
- NOTREACHED();
- return NULL;
-}
diff --git a/content/common/sandbox_policy.cc b/content/common/sandbox_policy.cc
index 1b59cf0..ad48a2a 100644
--- a/content/common/sandbox_policy.cc
+++ b/content/common/sandbox_policy.cc
@@ -294,6 +294,7 @@ bool AddGenericPolicy(sandbox::TargetPolicy* policy) {
// TODO(cpu): Lock down the sandbox more if possible.
// TODO(apatrick): Use D3D9Ex to render windowless.
bool AddPolicyForGPU(CommandLine* cmd_line, sandbox::TargetPolicy* policy) {
+#if !defined(NACL_WIN64) // We don't need this code on win nacl64.
if (base::win::GetVersion() > base::win::VERSION_XP) {
policy->SetTokenLevel(sandbox::USER_RESTRICTED_SAME_ACCESS,
sandbox::USER_LIMITED);
@@ -322,6 +323,7 @@ bool AddPolicyForGPU(CommandLine* cmd_line, sandbox::TargetPolicy* policy) {
}
AddGenericDllEvictionPolicy(policy);
+#endif
return true;
}
@@ -459,11 +461,13 @@ base::ProcessHandle StartProcessWithAccess(CommandLine* cmd_line,
PROCESS_INFORMATION target = {0};
sandbox::TargetPolicy* policy = g_broker_services->CreatePolicy();
+#if !defined(NACL_WIN64) // We don't need this code on win nacl64.
if (type == ChildProcessInfo::PLUGIN_PROCESS &&
!browser_command_line.HasSwitch(switches::kNoSandbox) &&
content::GetContentClient()->SandboxPlugin(cmd_line, policy)) {
in_sandbox = true;
}
+#endif
if (!in_sandbox) {
policy->Release();
diff --git a/content/common/socket_stream_dispatcher_dummy.cc b/content/common/socket_stream_dispatcher_dummy.cc
deleted file mode 100644
index eef622a..0000000
--- a/content/common/socket_stream_dispatcher_dummy.cc
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (c) 2011 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 "content/common/socket_stream_dispatcher.h"
-
-#include "base/compiler_specific.h"
-
-// SocketStreamDispatcher ------------------------------------------------------
-
-SocketStreamDispatcher::SocketStreamDispatcher() {
-}
-
-// SocketStreamDispatcher implementation ---------------------------------------
-
-bool SocketStreamDispatcher::OnMessageReceived(const IPC::Message& message) {
- return false;
-}
diff --git a/content/content_app.gypi b/content/content_app.gypi
index af7ea6b..9e199a5 100644
--- a/content/content_app.gypi
+++ b/content/content_app.gypi
@@ -22,8 +22,8 @@
'app/content_main.cc',
'app/content_main.h',
'app/content_main_delegate.h',
- 'app/sandbox_helper_win.cc',
- 'app/sandbox_helper_win.h',
+ 'app/startup_helper_win.cc',
+ 'app/startup_helper_win.h',
],
'conditions': [
['OS=="win"', {
diff --git a/ui/base/resource/resource_bundle.h b/ui/base/resource/resource_bundle.h
index 45edb38..8805894 100644
--- a/ui/base/resource/resource_bundle.h
+++ b/ui/base/resource/resource_bundle.h
@@ -278,9 +278,7 @@ class UI_EXPORT ResourceBundle {
// Handles for data sources.
DataHandle resources_data_;
DataHandle large_icon_resources_data_;
-#if !defined(NACL_WIN64)
scoped_ptr<DataPack> locale_resources_data_;
-#endif
// References to extra data packs loaded via AddDataPackToSharedInstance.
std::vector<LoadedDataPack*> data_packs_;
diff --git a/ui/base/resource/resource_bundle_dummy.cc b/ui/base/resource/resource_bundle_dummy.cc
deleted file mode 100644
index 529e63a..0000000
--- a/ui/base/resource/resource_bundle_dummy.cc
+++ /dev/null
@@ -1,63 +0,0 @@
-// Copyright (c) 2011 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 "ui/base/resource/resource_bundle.h"
-
-#include <windows.h>
-
-#include "base/logging.h"
-#include "base/synchronization/lock.h"
-
-// NOTE(gregoryd): This is a hack to avoid creating more nacl_win64-specific
-// files. The font members of ResourceBundle are never initialized in our code
-// so we can get away with an empty class definition.
-namespace gfx {
-class Font {};
-}
-
-namespace ui {
-
-ResourceBundle* ResourceBundle::g_shared_instance_ = NULL;
-
-// static
-std::string ResourceBundle::InitSharedInstance(
- const std::string& pref_locale) {
- DCHECK(g_shared_instance_ == NULL) << "ResourceBundle initialized twice";
- g_shared_instance_ = new ResourceBundle();
- return std::string();
-}
-
-// static
-void ResourceBundle::CleanupSharedInstance() {
- if (g_shared_instance_) {
- delete g_shared_instance_;
- g_shared_instance_ = NULL;
- }
-}
-
-// static
-ResourceBundle& ResourceBundle::GetSharedInstance() {
- // Must call InitSharedInstance before this function.
- CHECK(g_shared_instance_ != NULL);
- return *g_shared_instance_;
-}
-
-ResourceBundle::ResourceBundle()
- : lock_(new base::Lock),
- resources_data_(NULL) {
-}
-
-ResourceBundle::~ResourceBundle() {
-}
-
-
-string16 ResourceBundle::GetLocalizedString(int message_id) {
- return string16();
-}
-
-// static
-void ResourceBundle::SetResourcesDataDLL(HINSTANCE handle) {
-}
-
-} // namespace ui
diff --git a/ui/ui.gyp b/ui/ui.gyp
index df241cf..5b3cb6c 100644
--- a/ui/ui.gyp
+++ b/ui/ui.gyp
@@ -532,35 +532,5 @@
},
],
}],
- ['OS=="win"', {
- 'targets': [
- {
- 'target_name': 'ui_nacl_win64',
- 'type': '<(component)',
- 'dependencies': [
- '../base/base.gyp:base_nacl_win64',
- ],
- 'defines': [
- 'UI_IMPLEMENTATION',
- '<@(nacl_win64_defines)',
- ],
- 'sources': [
- 'base/resource/resource_bundle_dummy.cc',
- 'base/ui_base_paths.h',
- 'base/ui_base_paths.cc',
- 'base/ui_base_switches.h',
- 'base/ui_base_switches.cc',
- ],
- 'include_dirs': [
- '..',
- ],
- 'configurations': {
- 'Common_Base': {
- 'msvs_target_platform': 'x64',
- },
- },
- },
- ],
- }],
],
}
diff --git a/webkit/glue/webkit_glue_dummy.cc b/webkit/glue/webkit_glue_dummy.cc
deleted file mode 100644
index e05dd42..0000000
--- a/webkit/glue/webkit_glue_dummy.cc
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (c) 2006-2009 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 "webkit/glue/webkit_glue.h"
-#include "webkit/glue/user_agent.h"
-
-
-//------------------------------------------------------------------------------
-// webkit_glue impl:
-
-namespace webkit_glue {
-
-// Global variable used by the plugin quirk "die after unload".
-bool g_forcefully_terminate_plugin_process = false;
-
-void SetUserAgent(const std::string& new_user_agent) {
-}
-
-std::string BuildUserAgentHelper(bool mimic_windows,
- const std::string& product) {
- return std::string();
-}
-
-} // namespace webkit_glue