| Index: chrome/app/chrome_main.cc
 | 
| diff --git a/chrome/app/chrome_main.cc b/chrome/app/chrome_main.cc
 | 
| index 98c86799018bb343562f72fa47aef1bbf72797c8..ec048505a48939b4c5d6cfb5a7055c85c71b4542 100644
 | 
| --- a/chrome/app/chrome_main.cc
 | 
| +++ b/chrome/app/chrome_main.cc
 | 
| @@ -173,22 +173,31 @@ bool HasDeprecatedArguments(const std::wstring& command_line) {
 | 
|  
 | 
|  #if defined(OS_LINUX)
 | 
|  static void AdjustLinuxOOMScore(const std::string& process_type) {
 | 
| -  const int kMiscScore = 7;
 | 
| -#if defined(OS_CHROMEOS)
 | 
| -  // On ChromeOS, we want plugins to die after the renderers.  If this
 | 
| -  // works well for ChromeOS, we may do it for Linux as well.
 | 
| -  const int kPluginScore = 4;
 | 
| -#else
 | 
| -  const int kPluginScore = 10;
 | 
| -#endif
 | 
| +  // Browsers and zygotes should still be killable, but killed last.
 | 
| +  const int kZygoteScore = 0;
 | 
| +  // The minimum amount to bump a score by.  This is large enough that
 | 
| +  // even if it's translated into the old values, it will still go up
 | 
| +  // by at least one.
 | 
| +  const int kScoreBump = 100;
 | 
| +  // This is the lowest score that renderers and extensions start with
 | 
| +  // in the OomPriorityManager.
 | 
| +  const int kRendererScore = chrome::kLowestRendererOomScore;
 | 
| +  // For "miscellaneous" things, we want them after renderers,
 | 
| +  // but before plugins.
 | 
| +  const int kMiscScore = kRendererScore - kScoreBump;
 | 
| +  // We want plugins to die after the renderers.
 | 
| +  const int kPluginScore = kMiscScore - kScoreBump;
 | 
|    int score = -1;
 | 
|  
 | 
| +  DCHECK(kMiscScore > 0);
 | 
| +  DCHECK(kPluginScore > 0);
 | 
| +
 | 
|    if (process_type == switches::kPluginProcess ||
 | 
|        process_type == switches::kPpapiPluginProcess) {
 | 
|      score = kPluginScore;
 | 
|    } else if (process_type == switches::kPpapiBrokerProcess) {
 | 
| -    // Kill the broker before the plugin.
 | 
| -    score = kPluginScore + 1;
 | 
| +    // The broker should be killed before the PPAPI plugin.
 | 
| +    score = kPluginScore + kScoreBump;
 | 
|    } else if (process_type == switches::kUtilityProcess ||
 | 
|               process_type == switches::kWorkerProcess ||
 | 
|               process_type == switches::kGpuProcess ||
 | 
| @@ -196,19 +205,25 @@ static void AdjustLinuxOOMScore(const std::string& process_type) {
 | 
|      score = kMiscScore;
 | 
|    } else if (process_type == switches::kProfileImportProcess) {
 | 
|      NOTIMPLEMENTED();
 | 
| +    score = kZygoteScore;
 | 
|  #ifndef DISABLE_NACL
 | 
|    } else if (process_type == switches::kNaClLoaderProcess) {
 | 
|      score = kPluginScore;
 | 
|  #endif
 | 
|    } else if (process_type == switches::kZygoteProcess ||
 | 
|               process_type.empty()) {
 | 
| -    // Pass - browser / zygote process stays at 0.
 | 
| +    // For zygotes and unlabeled process types, we want to still make
 | 
| +    // them killable by the OOM killer.
 | 
| +    score = kZygoteScore;
 | 
|    } else if (process_type == switches::kExtensionProcess ||
 | 
|               process_type == switches::kRendererProcess) {
 | 
|      LOG(WARNING) << "process type '" << process_type << "' "
 | 
| -                 << "should go through the zygote.";
 | 
| -    // When debugging, these process types can end up being run directly.
 | 
| -    return;
 | 
| +                 << "should be created through the zygote.";
 | 
| +    // When debugging, these process types can end up being run
 | 
| +    // directly, but this isn't the typical path for assigning the OOM
 | 
| +    // score for them.  Still, we want to assign a score that is
 | 
| +    // somewhat representative for debugging.
 | 
| +    score = kRendererScore;
 | 
|    } else {
 | 
|      NOTREACHED() << "Unknown process type";
 | 
|    }
 | 
| @@ -219,7 +234,7 @@ static void AdjustLinuxOOMScore(const std::string& process_type) {
 | 
|  
 | 
|  void SetupCRT(const CommandLine& command_line) {
 | 
|  #if defined(OS_WIN)
 | 
| -#ifdef _CRTDBG_MAP_ALLOC
 | 
| +#if defined(_CRTDBG_MAP_ALLOC)
 | 
|    _CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDERR);
 | 
|    _CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE);
 | 
|  #else
 | 
| @@ -534,7 +549,7 @@ int RunNamedProcessTypeMain(const std::string& process_type,
 | 
|  #endif
 | 
|  #if !defined(DISABLE_NACL)
 | 
|      { switches::kNaClLoaderProcess, NaClMain },
 | 
| -#ifdef _WIN64  // The broker process is used only on Win64.
 | 
| +#if defined(_WIN64)  // The broker process is used only on Win64.
 | 
|      { switches::kNaClBrokerProcess, NaClBrokerMain },
 | 
|  #endif
 | 
|  #endif  // DISABLE_NACL
 | 
| 
 |