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

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

Issue 199105: Continue with the FreeBSD port - this version builds and links, though... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 11 years, 3 months 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/browser.cc ('k') | chrome/browser/browser_theme_provider.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) 2006-2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2009 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 "build/build_config.h" 5 #include "build/build_config.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "app/l10n_util.h" 9 #include "app/l10n_util.h"
10 #include "app/resource_bundle.h" 10 #include "app/resource_bundle.h"
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
105 #include "chrome/installer/util/shell_util.h" 105 #include "chrome/installer/util/shell_util.h"
106 #include "chrome/installer/util/version.h" 106 #include "chrome/installer/util/version.h"
107 #include "net/base/net_util.h" 107 #include "net/base/net_util.h"
108 #include "net/base/sdch_manager.h" 108 #include "net/base/sdch_manager.h"
109 #include "net/base/winsock_init.h" 109 #include "net/base/winsock_init.h"
110 #include "net/http/http_network_layer.h" 110 #include "net/http/http_network_layer.h"
111 #include "printing/printed_document.h" 111 #include "printing/printed_document.h"
112 #include "sandbox/src/sandbox.h" 112 #include "sandbox/src/sandbox.h"
113 #endif // defined(OS_WIN) 113 #endif // defined(OS_WIN)
114 114
115 #if defined(OS_LINUX) 115 #if defined(USE_X11)
116 #include "chrome/common/gtk_util.h" 116 #include "chrome/common/gtk_util.h"
117 #endif 117 #endif
118 118
119 #if defined(TOOLKIT_VIEWS) 119 #if defined(TOOLKIT_VIEWS)
120 #include "chrome/browser/views/chrome_views_delegate.h" 120 #include "chrome/browser/views/chrome_views_delegate.h"
121 #include "views/focus/accelerator_handler.h" 121 #include "views/focus/accelerator_handler.h"
122 #endif 122 #endif
123 123
124 #if defined(OS_CHROMEOS) 124 #if defined(OS_CHROMEOS)
125 #include "chrome/browser/chromeos/external_cookie_handler.h" 125 #include "chrome/browser/chromeos/external_cookie_handler.h"
126 #endif 126 #endif
127 127
128 namespace Platform { 128 namespace Platform {
129 129
130 void WillInitializeMainMessageLoop(const MainFunctionParams& parameters); 130 void WillInitializeMainMessageLoop(const MainFunctionParams& parameters);
131 void WillTerminate(); 131 void WillTerminate();
132 132
133 #if defined(OS_WIN) || defined(OS_LINUX) 133 #if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_FREEBSD)
134 // Perform any platform-specific work that needs to be done before the main 134 // Perform any platform-specific work that needs to be done before the main
135 // message loop is created and initialized. 135 // message loop is created and initialized.
136 void WillInitializeMainMessageLoop(const MainFunctionParams& parameters) { 136 void WillInitializeMainMessageLoop(const MainFunctionParams& parameters) {
137 } 137 }
138 138
139 // Perform platform-specific work that needs to be done after the main event 139 // Perform platform-specific work that needs to be done after the main event
140 // loop has ended. 140 // loop has ended.
141 void WillTerminate() { 141 void WillTerminate() {
142 } 142 }
143 #endif 143 #endif
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
196 if (IDR_DIR_HEADER_HTML == key) 196 if (IDR_DIR_HEADER_HTML == key)
197 return base::StringPiece(lazy_dir_lister.Pointer()->html_data); 197 return base::StringPiece(lazy_dir_lister.Pointer()->html_data);
198 198
199 return ResourceBundle::GetSharedInstance().GetRawDataResource(key); 199 return ResourceBundle::GetSharedInstance().GetRawDataResource(key);
200 } 200 }
201 201
202 void RunUIMessageLoop(BrowserProcess* browser_process) { 202 void RunUIMessageLoop(BrowserProcess* browser_process) {
203 #if defined(TOOLKIT_VIEWS) 203 #if defined(TOOLKIT_VIEWS)
204 views::AcceleratorHandler accelerator_handler; 204 views::AcceleratorHandler accelerator_handler;
205 MessageLoopForUI::current()->Run(&accelerator_handler); 205 MessageLoopForUI::current()->Run(&accelerator_handler);
206 #elif defined(OS_LINUX) 206 #elif defined(USE_X11)
207 MessageLoopForUI::current()->Run(NULL); 207 MessageLoopForUI::current()->Run(NULL);
208 #elif defined(OS_POSIX) 208 #elif defined(OS_POSIX)
209 MessageLoopForUI::current()->Run(); 209 MessageLoopForUI::current()->Run();
210 #endif 210 #endif
211 } 211 }
212 212
213 #if defined(OS_POSIX) 213 #if defined(OS_POSIX)
214 // See comment below, where sigaction is called. 214 // See comment below, where sigaction is called.
215 void SIGCHLDHandler(int signal) { 215 void SIGCHLDHandler(int signal) {
216 } 216 }
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after
448 // on anything since it comes from Cocoa. 448 // on anything since it comes from Cocoa.
449 #if !defined(OS_MACOSX) 449 #if !defined(OS_MACOSX)
450 if (!parameters.ui_task) { 450 if (!parameters.ui_task) {
451 ResourceBundle::InitSharedInstance( 451 ResourceBundle::InitSharedInstance(
452 local_state->GetString(prefs::kApplicationLocale)); 452 local_state->GetString(prefs::kApplicationLocale));
453 // We only load the theme dll in the browser process. 453 // We only load the theme dll in the browser process.
454 ResourceBundle::GetSharedInstance().LoadThemeResources(); 454 ResourceBundle::GetSharedInstance().LoadThemeResources();
455 } 455 }
456 #endif // !defined(OS_MACOSX) 456 #endif // !defined(OS_MACOSX)
457 457
458 #if defined(OS_LINUX) 458 #if defined(USE_X11)
459 gtk_util::SetDefaultWindowIcon(); 459 gtk_util::SetDefaultWindowIcon();
460 #endif 460 #endif
461 461
462 #if defined(OS_WIN) 462 #if defined(OS_WIN)
463 // This is experimental code. See first_run_win.cc for more info. 463 // This is experimental code. See first_run_win.cc for more info.
464 std::wstring try_chrome = 464 std::wstring try_chrome =
465 parsed_command_line.GetSwitchValue(switches::kTryChromeAgain); 465 parsed_command_line.GetSwitchValue(switches::kTryChromeAgain);
466 if (!try_chrome.empty()) { 466 if (!try_chrome.empty()) {
467 Upgrade::TryResult answer = 467 Upgrade::TryResult answer =
468 Upgrade::ShowTryChromeDialog(StringToInt(try_chrome)); 468 Upgrade::ShowTryChromeDialog(StringToInt(try_chrome));
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
527 ProfileManager* profile_manager = browser_process->profile_manager(); 527 ProfileManager* profile_manager = browser_process->profile_manager();
528 Profile* profile = profile_manager->GetDefaultProfile(user_data_dir); 528 Profile* profile = profile_manager->GetDefaultProfile(user_data_dir);
529 if (!profile) { 529 if (!profile) {
530 // Ideally, we should be able to run w/o access to disk. For now, we 530 // Ideally, we should be able to run w/o access to disk. For now, we
531 // prompt the user to pick a different user-data-dir and restart chrome 531 // prompt the user to pick a different user-data-dir and restart chrome
532 // with the new dir. 532 // with the new dir.
533 // http://code.google.com/p/chromium/issues/detail?id=11510 533 // http://code.google.com/p/chromium/issues/detail?id=11510
534 #if defined(OS_WIN) 534 #if defined(OS_WIN)
535 user_data_dir = FilePath::FromWStringHack( 535 user_data_dir = FilePath::FromWStringHack(
536 UserDataDirDialog::RunUserDataDirDialog(user_data_dir.ToWStringHack())); 536 UserDataDirDialog::RunUserDataDirDialog(user_data_dir.ToWStringHack()));
537 #elif defined(OS_LINUX) 537 #elif defined(OS_LINUX) || defined(OS_FREEBSD)
538 // TODO(port): fix this. 538 // TODO(port): fix this.
539 user_data_dir = FilePath("/tmp"); 539 user_data_dir = FilePath("/tmp");
540 #endif 540 #endif
541 #if defined(OS_WIN) || defined(OS_LINUX) 541 #if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_FREEBSD)
542 if (!parameters.ui_task && browser_shutdown::delete_resources_on_shutdown) { 542 if (!parameters.ui_task && browser_shutdown::delete_resources_on_shutdown) {
543 // Only delete the resources if we're not running tests. If we're running 543 // Only delete the resources if we're not running tests. If we're running
544 // tests the resources need to be reused as many places in the UI cache 544 // tests the resources need to be reused as many places in the UI cache
545 // SkBitmaps from the ResourceBundle. 545 // SkBitmaps from the ResourceBundle.
546 ResourceBundle::CleanupSharedInstance(); 546 ResourceBundle::CleanupSharedInstance();
547 } 547 }
548 548
549 if (!user_data_dir.empty()) { 549 if (!user_data_dir.empty()) {
550 // Because of the way CommandLine parses, it's sufficient to append a new 550 // Because of the way CommandLine parses, it's sufficient to append a new
551 // --user-data-dir switch. The last flag of the same name wins. 551 // --user-data-dir switch. The last flag of the same name wins.
552 // TODO(tc): It would be nice to remove the flag we don't want, but that 552 // TODO(tc): It would be nice to remove the flag we don't want, but that
553 // sounds risky if we parse differently than CommandLineToArgvW. 553 // sounds risky if we parse differently than CommandLineToArgvW.
554 CommandLine new_command_line = parsed_command_line; 554 CommandLine new_command_line = parsed_command_line;
555 new_command_line.AppendSwitchWithValue(switches::kUserDataDir, 555 new_command_line.AppendSwitchWithValue(switches::kUserDataDir,
556 user_data_dir.ToWStringHack()); 556 user_data_dir.ToWStringHack());
557 base::LaunchApp(new_command_line, false, false, NULL); 557 base::LaunchApp(new_command_line, false, false, NULL);
558 } 558 }
559 #endif // defined(OS_WIN) || defined(OS_LINUX) 559 #endif // defined(OS_WIN) || defined(OS_LINUX) || defined(OS_FREEBSD)
560 560
561 return ResultCodes::NORMAL_EXIT; 561 return ResultCodes::NORMAL_EXIT;
562 } 562 }
563 if (profile->GetBlacklist() && !profile->GetBlacklist()->is_good()) { 563 if (profile->GetBlacklist() && !profile->GetBlacklist()->is_good()) {
564 // TODO(idanan): Enable this for other platforms once the dispatching 564 // TODO(idanan): Enable this for other platforms once the dispatching
565 // support code has been ported. See ifdefs in message_loop.h. 565 // support code has been ported. See ifdefs in message_loop.h.
566 #if defined(OS_WIN) 566 #if defined(OS_WIN)
567 bool accepted = BlacklistErrorDialog::RunBlacklistErrorDialog(); 567 bool accepted = BlacklistErrorDialog::RunBlacklistErrorDialog();
568 if (!accepted) 568 if (!accepted)
569 return ResultCodes::NORMAL_EXIT; 569 return ResultCodes::NORMAL_EXIT;
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
614 if (parsed_command_line.HasSwitch(switches::kImport)) 614 if (parsed_command_line.HasSwitch(switches::kImport))
615 return FirstRun::ImportNow(profile, parsed_command_line); 615 return FirstRun::ImportNow(profile, parsed_command_line);
616 616
617 // When another process is running, use it instead of starting us. 617 // When another process is running, use it instead of starting us.
618 switch (process_singleton.NotifyOtherProcess()) { 618 switch (process_singleton.NotifyOtherProcess()) {
619 case ProcessSingleton::PROCESS_NONE: 619 case ProcessSingleton::PROCESS_NONE:
620 // No process already running, fall through to starting a new one. 620 // No process already running, fall through to starting a new one.
621 break; 621 break;
622 622
623 case ProcessSingleton::PROCESS_NOTIFIED: 623 case ProcessSingleton::PROCESS_NOTIFIED:
624 #if defined(OS_LINUX) 624 #if defined(OS_LINUX) || defined(OS_FREEBSD)
625 printf("%s\n", base::SysWideToNativeMB( 625 printf("%s\n", base::SysWideToNativeMB(
626 l10n_util::GetString(IDS_USED_EXISTING_BROWSER)).c_str()); 626 l10n_util::GetString(IDS_USED_EXISTING_BROWSER)).c_str());
627 #endif 627 #endif
628 return ResultCodes::NORMAL_EXIT; 628 return ResultCodes::NORMAL_EXIT;
629 629
630 case ProcessSingleton::PROFILE_IN_USE: 630 case ProcessSingleton::PROFILE_IN_USE:
631 return ResultCodes::PROFILE_IN_USE; 631 return ResultCodes::PROFILE_IN_USE;
632 632
633 default: 633 default:
634 NOTREACHED(); 634 NOTREACHED();
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after
858 if (metrics) 858 if (metrics)
859 metrics->Stop(); 859 metrics->Stop();
860 860
861 // browser_shutdown takes care of deleting browser_process, so we need to 861 // browser_shutdown takes care of deleting browser_process, so we need to
862 // release it. 862 // release it.
863 browser_process.release(); 863 browser_process.release();
864 browser_shutdown::Shutdown(); 864 browser_shutdown::Shutdown();
865 865
866 return result_code; 866 return result_code;
867 } 867 }
OLDNEW
« no previous file with comments | « chrome/browser/browser.cc ('k') | chrome/browser/browser_theme_provider.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698