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

Side by Side Diff: chrome/browser/process_singleton_win.cc

Issue 8854001: Honor profile directory when creating new window in existing browser (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: address review comments Created 9 years 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
« no previous file with comments | « chrome/browser/process_singleton_linux.cc ('k') | chrome/browser/ui/browser_init.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/browser/process_singleton.h" 5 #include "chrome/browser/process_singleton.h"
6 6
7 #include "base/base_paths.h" 7 #include "base/base_paths.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/file_path.h" 9 #include "base/file_path.h"
10 #include "base/path_service.h" 10 #include "base/path_service.h"
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after
304 } 304 }
305 305
306 // Get command line. 306 // Get command line.
307 const std::wstring cmd_line = 307 const std::wstring cmd_line =
308 msg.substr(second_null + 1, third_null - second_null); 308 msg.substr(second_null + 1, third_null - second_null);
309 309
310 CommandLine parsed_command_line = CommandLine::FromString(cmd_line); 310 CommandLine parsed_command_line = CommandLine::FromString(cmd_line);
311 PrefService* prefs = g_browser_process->local_state(); 311 PrefService* prefs = g_browser_process->local_state();
312 DCHECK(prefs); 312 DCHECK(prefs);
313 313
314 Profile* profile = ProfileManager::GetLastUsedProfile();
315 if (!profile) {
316 // We should only be able to get here if the profile already exists and
317 // has been created.
318 NOTREACHED();
319 return TRUE;
320 }
321
322 // Handle the --uninstall-extension startup action. This needs to done here 314 // Handle the --uninstall-extension startup action. This needs to done here
323 // in the process that is running with the target profile, otherwise the 315 // in the process that is running with the target profile, otherwise the
324 // uninstall will fail to unload and remove all components. 316 // uninstall will fail to unload and remove all components.
325 if (parsed_command_line.HasSwitch(switches::kUninstallExtension)) { 317 if (parsed_command_line.HasSwitch(switches::kUninstallExtension)) {
318 // The uninstall extension switch can't be combined with the profile
319 // directory switch.
320 DCHECK(!parsed_command_line.HasSwitch(switches::kProfileDirectory));
321
322 Profile* profile = ProfileManager::GetLastUsedProfile();
323 if (!profile) {
324 // We should only be able to get here if the profile already exists and
325 // has been created.
326 NOTREACHED();
327 return TRUE;
328 }
329
326 ExtensionsStartupUtil ext_startup_util; 330 ExtensionsStartupUtil ext_startup_util;
327 ext_startup_util.UninstallExtension(parsed_command_line, profile); 331 ext_startup_util.UninstallExtension(parsed_command_line, profile);
328 return TRUE; 332 return TRUE;
329 } 333 }
330 334
331 // Run the browser startup sequence again, with the command line of the 335 // Run the browser startup sequence again, with the command line of the
332 // signalling process. 336 // signalling process.
333 BrowserInit::ProcessCommandLine(parsed_command_line, cur_dir, false, 337 BrowserInit::ProcessCommandLineAlreadyRunning(parsed_command_line, cur_dir);
334 profile, NULL);
335 return TRUE; 338 return TRUE;
336 } 339 }
337 return TRUE; 340 return TRUE;
338 } 341 }
339 342
340 LRESULT CALLBACK ProcessSingleton::WndProc(HWND hwnd, UINT message, 343 LRESULT CALLBACK ProcessSingleton::WndProc(HWND hwnd, UINT message,
341 WPARAM wparam, LPARAM lparam) { 344 WPARAM wparam, LPARAM lparam) {
342 switch (message) { 345 switch (message) {
343 case WM_COPYDATA: 346 case WM_COPYDATA:
344 return OnCopyData(reinterpret_cast<HWND>(wparam), 347 return OnCopyData(reinterpret_cast<HWND>(wparam),
345 reinterpret_cast<COPYDATASTRUCT*>(lparam)); 348 reinterpret_cast<COPYDATASTRUCT*>(lparam));
346 default: 349 default:
347 break; 350 break;
348 } 351 }
349 352
350 return ::DefWindowProc(hwnd, message, wparam, lparam); 353 return ::DefWindowProc(hwnd, message, wparam, lparam);
351 } 354 }
OLDNEW
« no previous file with comments | « chrome/browser/process_singleton_linux.cc ('k') | chrome/browser/ui/browser_init.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698