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

Side by Side Diff: chrome/browser/extensions/chrome_extensions_browser_client.cc

Issue 101413011: Prevent creating background pages for non-incognito profile in Guest mode (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/extensions/chrome_extensions_browser_client.h" 5 #include "chrome/browser/extensions/chrome_extensions_browser_client.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/version.h" 8 #include "base/version.h"
9 #include "chrome/browser/app_mode/app_mode_utils.h" 9 #include "chrome/browser/app_mode/app_mode_utils.h"
10 #include "chrome/browser/browser_process.h" 10 #include "chrome/browser/browser_process.h"
11 #include "chrome/browser/extensions/chrome_app_sorting.h" 11 #include "chrome/browser/extensions/chrome_app_sorting.h"
12 #include "chrome/browser/extensions/extension_prefs.h" 12 #include "chrome/browser/extensions/extension_prefs.h"
13 #include "chrome/browser/profiles/profile.h" 13 #include "chrome/browser/profiles/profile.h"
14 #include "chrome/browser/profiles/profile_manager.h" 14 #include "chrome/browser/profiles/profile_manager.h"
15 #include "chrome/browser/ui/app_modal_dialogs/javascript_dialog_manager.h" 15 #include "chrome/browser/ui/app_modal_dialogs/javascript_dialog_manager.h"
16 #include "chrome/browser/ui/browser_finder.h" 16 #include "chrome/browser/ui/browser_finder.h"
17 #include "chrome/common/chrome_switches.h" 17 #include "chrome/common/chrome_switches.h"
18 #include "chrome/common/chrome_version_info.h" 18 #include "chrome/common/chrome_version_info.h"
19 #include "chrome/common/pref_names.h" 19 #include "chrome/common/pref_names.h"
20 20
21 #if defined(OS_CHROMEOS)
22 #include "chromeos/chromeos_switches.h"
23 #endif
24
21 namespace extensions { 25 namespace extensions {
22 26
23 ChromeExtensionsBrowserClient::ChromeExtensionsBrowserClient() {} 27 ChromeExtensionsBrowserClient::ChromeExtensionsBrowserClient() {}
24 28
25 ChromeExtensionsBrowserClient::~ChromeExtensionsBrowserClient() {} 29 ChromeExtensionsBrowserClient::~ChromeExtensionsBrowserClient() {}
26 30
27 bool ChromeExtensionsBrowserClient::IsShuttingDown() { 31 bool ChromeExtensionsBrowserClient::IsShuttingDown() {
28 return g_browser_process->IsShuttingDown(); 32 return g_browser_process->IsShuttingDown();
29 } 33 }
30 34
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
82 #if defined(OS_ANDROID) 86 #if defined(OS_ANDROID)
83 return false; 87 return false;
84 #else 88 #else
85 // There are no browser windows open and the browser process was 89 // There are no browser windows open and the browser process was
86 // started to show the app launcher. 90 // started to show the app launcher.
87 return chrome::GetTotalBrowserCountForProfile(profile) == 0 && 91 return chrome::GetTotalBrowserCountForProfile(profile) == 0 &&
88 CommandLine::ForCurrentProcess()->HasSwitch(switches::kShowAppList); 92 CommandLine::ForCurrentProcess()->HasSwitch(switches::kShowAppList);
89 #endif 93 #endif
90 } 94 }
91 95
96 bool ChromeExtensionsBrowserClient::IsBackgroundPageAllowed(
97 content::BrowserContext* context) const {
98 #if defined(OS_CHROMEOS)
99 // Returns true if current session is Chrome OS Guest mode session and current
100 // browser context is *not* off-the-record. Such context is artificial and
101 // background page shouldn't be created in it.
102 const CommandLine* command_line = CommandLine::ForCurrentProcess();
103 if (command_line->HasSwitch(chromeos::switches::kGuestSession) &&
104 !context->IsOffTheRecord()) {
105 return false;
106 }
107 #endif
108 return true;
109 }
110
92 bool ChromeExtensionsBrowserClient::DidVersionUpdate( 111 bool ChromeExtensionsBrowserClient::DidVersionUpdate(
93 content::BrowserContext* context) { 112 content::BrowserContext* context) {
94 Profile* profile = static_cast<Profile*>(context); 113 Profile* profile = static_cast<Profile*>(context);
95 114
96 // Unit tests may not provide prefs; assume everything is up-to-date. 115 // Unit tests may not provide prefs; assume everything is up-to-date.
97 ExtensionPrefs* extension_prefs = ExtensionPrefs::Get(profile); 116 ExtensionPrefs* extension_prefs = ExtensionPrefs::Get(profile);
98 if (!extension_prefs) 117 if (!extension_prefs)
99 return false; 118 return false;
100 119
101 // If we're inside a browser test, then assume prefs are all up-to-date. 120 // If we're inside a browser test, then assume prefs are all up-to-date.
(...skipping 27 matching lines...) Expand all
129 bool ChromeExtensionsBrowserClient::IsRunningInForcedAppMode() { 148 bool ChromeExtensionsBrowserClient::IsRunningInForcedAppMode() {
130 return chrome::IsRunningInForcedAppMode(); 149 return chrome::IsRunningInForcedAppMode();
131 } 150 }
132 151
133 content::JavaScriptDialogManager* 152 content::JavaScriptDialogManager*
134 ChromeExtensionsBrowserClient::GetJavaScriptDialogManager() { 153 ChromeExtensionsBrowserClient::GetJavaScriptDialogManager() {
135 return GetJavaScriptDialogManagerInstance(); 154 return GetJavaScriptDialogManagerInstance();
136 } 155 }
137 156
138 } // namespace extensions 157 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698