OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/ui/browser_commands.h" | 5 #include "chrome/browser/ui/browser_commands.h" |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/metrics/histogram.h" | 8 #include "base/metrics/histogram.h" |
9 #include "base/utf_string_conversions.h" | 9 #include "base/utf_string_conversions.h" |
10 #include "chrome/browser/bookmarks/bookmark_model.h" | 10 #include "chrome/browser/bookmarks/bookmark_model.h" |
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
233 if (!download_util::IsSavableURL( | 233 if (!download_util::IsSavableURL( |
234 active_entry ? active_entry->GetURL() : GURL()) || | 234 active_entry ? active_entry->GetURL() : GURL()) || |
235 current_tab->ShowingInterstitialPage()) | 235 current_tab->ShowingInterstitialPage()) |
236 content_restrictions |= content::CONTENT_RESTRICTION_SAVE; | 236 content_restrictions |= content::CONTENT_RESTRICTION_SAVE; |
237 if (current_tab->ShowingInterstitialPage()) | 237 if (current_tab->ShowingInterstitialPage()) |
238 content_restrictions |= content::CONTENT_RESTRICTION_PRINT; | 238 content_restrictions |= content::CONTENT_RESTRICTION_PRINT; |
239 } | 239 } |
240 return content_restrictions; | 240 return content_restrictions; |
241 } | 241 } |
242 | 242 |
243 void NewEmptyWindow(Profile* profile) { | 243 void NewEmptyWindow(Profile* profile, HostDesktopType desktop_type) { |
244 bool incognito = profile->IsOffTheRecord(); | 244 bool incognito = profile->IsOffTheRecord(); |
245 PrefService* prefs = profile->GetPrefs(); | 245 PrefService* prefs = profile->GetPrefs(); |
246 if (incognito) { | 246 if (incognito) { |
247 if (IncognitoModePrefs::GetAvailability(prefs) == | 247 if (IncognitoModePrefs::GetAvailability(prefs) == |
248 IncognitoModePrefs::DISABLED) { | 248 IncognitoModePrefs::DISABLED) { |
249 incognito = false; | 249 incognito = false; |
250 } | 250 } |
251 } else { | 251 } else { |
252 if (browser_defaults::kAlwaysOpenIncognitoWindow && | 252 if (browser_defaults::kAlwaysOpenIncognitoWindow && |
253 IncognitoModePrefs::ShouldLaunchIncognito( | 253 IncognitoModePrefs::ShouldLaunchIncognito( |
254 *CommandLine::ForCurrentProcess(), prefs)) { | 254 *CommandLine::ForCurrentProcess(), prefs)) { |
255 incognito = true; | 255 incognito = true; |
256 } | 256 } |
257 } | 257 } |
258 | 258 |
259 if (incognito) { | 259 if (incognito) { |
260 content::RecordAction(UserMetricsAction("NewIncognitoWindow")); | 260 content::RecordAction(UserMetricsAction("NewIncognitoWindow")); |
261 OpenEmptyWindow(profile->GetOffTheRecordProfile()); | 261 OpenEmptyWindow(profile->GetOffTheRecordProfile(), desktop_type); |
262 } else { | 262 } else { |
263 content::RecordAction(UserMetricsAction("NewWindow")); | 263 content::RecordAction(UserMetricsAction("NewWindow")); |
264 SessionService* session_service = | 264 SessionService* session_service = |
265 SessionServiceFactory::GetForProfile(profile->GetOriginalProfile()); | 265 SessionServiceFactory::GetForProfile(profile->GetOriginalProfile()); |
266 if (!session_service || | 266 if (!session_service || |
267 !session_service->RestoreIfNecessary(std::vector<GURL>())) { | 267 !session_service->RestoreIfNecessary(std::vector<GURL>())) { |
268 OpenEmptyWindow(profile->GetOriginalProfile()); | 268 OpenEmptyWindow(profile->GetOriginalProfile(), desktop_type); |
269 } | 269 } |
270 } | 270 } |
271 } | 271 } |
272 | 272 |
273 Browser* OpenEmptyWindow(Profile* profile) { | 273 void NewEmptyWindow(Profile* profile) { |
274 Browser* browser = new Browser(Browser::CreateParams(profile)); | 274 NewEmptyWindow(profile, HOST_DESKTOP_TYPE_NATIVE); |
| 275 } |
| 276 |
| 277 Browser* OpenEmptyWindow(Profile* profile, HostDesktopType desktop_type) { |
| 278 Browser* browser = new Browser( |
| 279 Browser::CreateParams(Browser::TYPE_TABBED, profile, desktop_type)); |
275 AddBlankTab(browser, true); | 280 AddBlankTab(browser, true); |
276 browser->window()->Show(); | 281 browser->window()->Show(); |
277 return browser; | 282 return browser; |
278 } | 283 } |
279 | 284 |
| 285 Browser* OpenEmptyWindow(Profile* profile) { |
| 286 return OpenEmptyWindow(profile, HOST_DESKTOP_TYPE_NATIVE); |
| 287 } |
| 288 |
280 void OpenWindowWithRestoredTabs(Profile* profile) { | 289 void OpenWindowWithRestoredTabs(Profile* profile) { |
281 TabRestoreService* service = TabRestoreServiceFactory::GetForProfile(profile); | 290 TabRestoreService* service = TabRestoreServiceFactory::GetForProfile(profile); |
282 if (service) | 291 if (service) |
283 service->RestoreMostRecentEntry(NULL); | 292 service->RestoreMostRecentEntry(NULL); |
284 } | 293 } |
285 | 294 |
286 void OpenURLOffTheRecord(Profile* profile, | 295 void OpenURLOffTheRecord(Profile* profile, |
287 const GURL& url, | 296 const GURL& url, |
288 chrome::HostDesktopType desktop_type) { | 297 chrome::HostDesktopType desktop_type) { |
289 Browser* browser = browser::FindOrCreateTabbedBrowser( | 298 Browser* browser = browser::FindOrCreateTabbedBrowser( |
(...skipping 772 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1062 BrowserCommandsTabContentsCreator::CreateTabContents(contents); | 1071 BrowserCommandsTabContentsCreator::CreateTabContents(contents); |
1063 } | 1072 } |
1064 app_browser->tab_strip_model()->AppendTabContents(tab_contents, true); | 1073 app_browser->tab_strip_model()->AppendTabContents(tab_contents, true); |
1065 | 1074 |
1066 contents->GetMutableRendererPrefs()->can_accept_load_drops = false; | 1075 contents->GetMutableRendererPrefs()->can_accept_load_drops = false; |
1067 contents->GetRenderViewHost()->SyncRendererPrefs(); | 1076 contents->GetRenderViewHost()->SyncRendererPrefs(); |
1068 app_browser->window()->Show(); | 1077 app_browser->window()->Show(); |
1069 } | 1078 } |
1070 | 1079 |
1071 } // namespace chrome | 1080 } // namespace chrome |
OLD | NEW |