| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "chrome/renderer/chrome_render_process_observer.h" | 5 #include "chrome/renderer/chrome_render_process_observer.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/file_util.h" | 8 #include "base/file_util.h" |
| 9 #include "base/metrics/field_trial.h" | 9 #include "base/metrics/field_trial.h" |
| 10 #include "base/metrics/histogram.h" | 10 #include "base/metrics/histogram.h" |
| (...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 356 FilePath pdf; | 356 FilePath pdf; |
| 357 if (PathService::Get(chrome::FILE_PDF_PLUGIN, &pdf) && | 357 if (PathService::Get(chrome::FILE_PDF_PLUGIN, &pdf) && |
| 358 file_util::PathExists(pdf)) { | 358 file_util::PathExists(pdf)) { |
| 359 g_iat_patch_createdca.Patch( | 359 g_iat_patch_createdca.Patch( |
| 360 pdf.value().c_str(), "gdi32.dll", "CreateDCA", CreateDCAPatch); | 360 pdf.value().c_str(), "gdi32.dll", "CreateDCA", CreateDCAPatch); |
| 361 g_iat_patch_get_font_data.Patch( | 361 g_iat_patch_get_font_data.Patch( |
| 362 pdf.value().c_str(), "gdi32.dll", "GetFontData", GetFontDataPatch); | 362 pdf.value().c_str(), "gdi32.dll", "GetFontData", GetFontDataPatch); |
| 363 } | 363 } |
| 364 #endif | 364 #endif |
| 365 | 365 |
| 366 #if defined(OS_POSIX) && !defined(OS_MACOSX) | 366 #if defined(OS_POSIX) && !defined(OS_MACOSX) && defined(USE_NSS) |
| 367 // Remoting requires NSS to function properly. | 367 // Remoting requires NSS to function properly. |
| 368 if (!command_line.HasSwitch(switches::kSingleProcess) && | 368 if (!command_line.HasSwitch(switches::kSingleProcess)) { |
| 369 command_line.HasSwitch(switches::kEnableRemoting)) { | |
| 370 #if defined(USE_NSS) | |
| 371 // We are going to fork to engage the sandbox and we have not loaded | 369 // We are going to fork to engage the sandbox and we have not loaded |
| 372 // any security modules so it is safe to disable the fork check in NSS. | 370 // any security modules so it is safe to disable the fork check in NSS. |
| 373 crypto::DisableNSSForkCheck(); | 371 crypto::DisableNSSForkCheck(); |
| 374 crypto::ForceNSSNoDBInit(); | 372 crypto::ForceNSSNoDBInit(); |
| 375 crypto::EnsureNSSInit(); | 373 crypto::EnsureNSSInit(); |
| 376 #else | |
| 377 // TODO(bulach): implement openssl support. | |
| 378 NOTREACHED() << "Remoting is not supported for openssl"; | |
| 379 #endif | |
| 380 } | 374 } |
| 381 #elif defined(OS_WIN) | 375 #elif defined(OS_WIN) |
| 382 // crypt32.dll is used to decode X509 certificates for Chromoting. | 376 // crypt32.dll is used to decode X509 certificates for Chromoting. |
| 383 // Only load this library when the feature is enabled. | 377 // Only load this library when the feature is enabled. |
| 384 std::string error; | 378 std::string error; |
| 385 base::LoadNativeLibrary(FilePath(L"crypt32.dll"), &error); | 379 base::LoadNativeLibrary(FilePath(L"crypt32.dll"), &error); |
| 386 #endif | 380 #endif |
| 387 | 381 |
| 388 // Note that under Linux, the media library will normally already have | 382 // Note that under Linux, the media library will normally already have |
| 389 // been initialized by the Zygote before this instance became a Renderer. | 383 // been initialized by the Zygote before this instance became a Renderer. |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 502 // a new "delete everything" pass because object references make it difficult | 496 // a new "delete everything" pass because object references make it difficult |
| 503 // to free everything possible in just one pass. | 497 // to free everything possible in just one pass. |
| 504 while (!v8::V8::IdleNotification()) { | 498 while (!v8::V8::IdleNotification()) { |
| 505 } | 499 } |
| 506 | 500 |
| 507 #if !defined(OS_MACOSX) && defined(USE_TCMALLOC) | 501 #if !defined(OS_MACOSX) && defined(USE_TCMALLOC) |
| 508 // Tell tcmalloc to release any free pages it's still holding. | 502 // Tell tcmalloc to release any free pages it's still holding. |
| 509 MallocExtension::instance()->ReleaseFreeMemory(); | 503 MallocExtension::instance()->ReleaseFreeMemory(); |
| 510 #endif | 504 #endif |
| 511 } | 505 } |
| OLD | NEW |