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

Unified Diff: chrome/browser/ui/views/chrome_browser_main_extra_parts_views.cc

Issue 2462423002: Condition the use of ChromeBrowserMainExtraPartsViewsLinux to !use_ozone (Closed)
Patch Set: same as patchset 6, w/ grouped includes Created 4 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/views/chrome_browser_main_extra_parts_views.cc
diff --git a/chrome/browser/ui/views/chrome_browser_main_extra_parts_views.cc b/chrome/browser/ui/views/chrome_browser_main_extra_parts_views.cc
index 9254a33451003ac35648389e9c1c461be9cd56c0..2aa68233ec3410ddea1f167ef71c782f23ae0854 100644
--- a/chrome/browser/ui/views/chrome_browser_main_extra_parts_views.cc
+++ b/chrome/browser/ui/views/chrome_browser_main_extra_parts_views.cc
@@ -23,6 +23,15 @@
#include "ui/wm/core/wm_state.h"
#endif // defined(USE_AURA)
+#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
+#include "base/command_line.h"
+#include "chrome/browser/ui/simple_message_box.h"
+#include "chrome/common/chrome_switches.h"
+#include "chrome/grit/chromium_strings.h"
+#include "chrome/grit/generated_resources.h"
+#include "ui/base/l10n/l10n_util.h"
+#endif // defined(OS_LINUX) && !defined(OS_CHROMEOS)
+
ChromeBrowserMainExtraPartsViews::ChromeBrowserMainExtraPartsViews() {
}
@@ -51,6 +60,34 @@ void ChromeBrowserMainExtraPartsViews::PreCreateThreads() {
#endif
}
+void ChromeBrowserMainExtraPartsViews::PreProfileInit() {
+#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
+ // On the Linux desktop, we want to prevent the user from logging in as root,
+ // so that we don't destroy the profile. Now that we have some minimal ui
+ // initialized, check to see if we're running as root and bail if we are.
+ if (getuid() != 0)
+ return;
+
+ const base::CommandLine& command_line =
+ *base::CommandLine::ForCurrentProcess();
+ if (command_line.HasSwitch(switches::kUserDataDir))
+ return;
+
+ base::string16 title = l10n_util::GetStringFUTF16(
+ IDS_REFUSE_TO_RUN_AS_ROOT, l10n_util::GetStringUTF16(IDS_PRODUCT_NAME));
+ base::string16 message = l10n_util::GetStringFUTF16(
+ IDS_REFUSE_TO_RUN_AS_ROOT_2, l10n_util::GetStringUTF16(IDS_PRODUCT_NAME));
+
+ chrome::ShowWarningMessageBox(NULL, title, message);
+
+ // Avoids gpu_process_transport_factory.cc(153)] Check failed:
+ // per_compositor_data_.empty() when quit is chosen.
+ base::RunLoop().RunUntilIdle();
+
+ exit(EXIT_FAILURE);
+#endif
+}
+
void ChromeBrowserMainExtraPartsViews::ServiceManagerConnectionStarted(
content::ServiceManagerConnection* connection) {
DCHECK(connection);

Powered by Google App Engine
This is Rietveld 408576698