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

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

Issue 1236003005: Move closing-blank-tab logic in Browser class to DownloadUIConttroller (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed comments Created 5 years, 5 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
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 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.h" 5 #include "chrome/browser/ui/browser.h"
6 6
7 #if defined(OS_WIN) 7 #if defined(OS_WIN)
8 #include <windows.h> 8 #include <windows.h>
9 #include <shellapi.h> 9 #include <shellapi.h>
10 #endif // defined(OS_WIN) 10 #endif // defined(OS_WIN)
(...skipping 30 matching lines...) Expand all
41 #include "chrome/browser/character_encoding.h" 41 #include "chrome/browser/character_encoding.h"
42 #include "chrome/browser/chrome_notification_types.h" 42 #include "chrome/browser/chrome_notification_types.h"
43 #include "chrome/browser/content_settings/tab_specific_content_settings.h" 43 #include "chrome/browser/content_settings/tab_specific_content_settings.h"
44 #include "chrome/browser/custom_handlers/protocol_handler_registry.h" 44 #include "chrome/browser/custom_handlers/protocol_handler_registry.h"
45 #include "chrome/browser/custom_handlers/protocol_handler_registry_factory.h" 45 #include "chrome/browser/custom_handlers/protocol_handler_registry_factory.h"
46 #include "chrome/browser/custom_handlers/register_protocol_handler_infobar_deleg ate.h" 46 #include "chrome/browser/custom_handlers/register_protocol_handler_infobar_deleg ate.h"
47 #include "chrome/browser/custom_handlers/register_protocol_handler_permission_re quest.h" 47 #include "chrome/browser/custom_handlers/register_protocol_handler_permission_re quest.h"
48 #include "chrome/browser/defaults.h" 48 #include "chrome/browser/defaults.h"
49 #include "chrome/browser/devtools/devtools_toggle_action.h" 49 #include "chrome/browser/devtools/devtools_toggle_action.h"
50 #include "chrome/browser/devtools/devtools_window.h" 50 #include "chrome/browser/devtools/devtools_window.h"
51 #include "chrome/browser/download/download_item_model.h"
52 #include "chrome/browser/download/download_service.h" 51 #include "chrome/browser/download/download_service.h"
53 #include "chrome/browser/download/download_service_factory.h" 52 #include "chrome/browser/download/download_service_factory.h"
54 #include "chrome/browser/download/download_shelf.h"
55 #include "chrome/browser/extensions/api/tabs/tabs_event_router.h" 53 #include "chrome/browser/extensions/api/tabs/tabs_event_router.h"
56 #include "chrome/browser/extensions/api/tabs/tabs_windows_api.h" 54 #include "chrome/browser/extensions/api/tabs/tabs_windows_api.h"
57 #include "chrome/browser/extensions/browser_extension_window_controller.h" 55 #include "chrome/browser/extensions/browser_extension_window_controller.h"
58 #include "chrome/browser/extensions/extension_service.h" 56 #include "chrome/browser/extensions/extension_service.h"
59 #include "chrome/browser/extensions/extension_ui_util.h" 57 #include "chrome/browser/extensions/extension_ui_util.h"
60 #include "chrome/browser/extensions/extension_util.h" 58 #include "chrome/browser/extensions/extension_util.h"
61 #include "chrome/browser/extensions/tab_helper.h" 59 #include "chrome/browser/extensions/tab_helper.h"
62 #include "chrome/browser/file_select_helper.h" 60 #include "chrome/browser/file_select_helper.h"
63 #include "chrome/browser/first_run/first_run.h" 61 #include "chrome/browser/first_run/first_run.h"
64 #include "chrome/browser/history/top_sites_factory.h" 62 #include "chrome/browser/history/top_sites_factory.h"
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 #include "components/history/core/browser/top_sites.h" 160 #include "components/history/core/browser/top_sites.h"
163 #include "components/infobars/core/simple_alert_infobar_delegate.h" 161 #include "components/infobars/core/simple_alert_infobar_delegate.h"
164 #include "components/search/search.h" 162 #include "components/search/search.h"
165 #include "components/sessions/session_types.h" 163 #include "components/sessions/session_types.h"
166 #include "components/startup_metric_utils/startup_metric_utils.h" 164 #include "components/startup_metric_utils/startup_metric_utils.h"
167 #include "components/translate/core/browser/language_state.h" 165 #include "components/translate/core/browser/language_state.h"
168 #include "components/ui/zoom/zoom_controller.h" 166 #include "components/ui/zoom/zoom_controller.h"
169 #include "components/web_modal/popup_manager.h" 167 #include "components/web_modal/popup_manager.h"
170 #include "components/web_modal/web_contents_modal_dialog_manager.h" 168 #include "components/web_modal/web_contents_modal_dialog_manager.h"
171 #include "content/public/browser/devtools_agent_host.h" 169 #include "content/public/browser/devtools_agent_host.h"
172 #include "content/public/browser/download_item.h"
173 #include "content/public/browser/download_manager.h"
174 #include "content/public/browser/interstitial_page.h" 170 #include "content/public/browser/interstitial_page.h"
175 #include "content/public/browser/invalidate_type.h" 171 #include "content/public/browser/invalidate_type.h"
176 #include "content/public/browser/navigation_controller.h" 172 #include "content/public/browser/navigation_controller.h"
177 #include "content/public/browser/navigation_entry.h" 173 #include "content/public/browser/navigation_entry.h"
178 #include "content/public/browser/notification_details.h" 174 #include "content/public/browser/notification_details.h"
179 #include "content/public/browser/notification_service.h" 175 #include "content/public/browser/notification_service.h"
180 #include "content/public/browser/plugin_service.h" 176 #include "content/public/browser/plugin_service.h"
181 #include "content/public/browser/render_process_host.h" 177 #include "content/public/browser/render_process_host.h"
182 #include "content/public/browser/render_view_host.h" 178 #include "content/public/browser/render_view_host.h"
183 #include "content/public/browser/render_widget_host_view.h" 179 #include "content/public/browser/render_widget_host_view.h"
(...skipping 1214 matching lines...) Expand 10 before | Expand all | Expand 10 after
1398 GlobalErrorServiceFactory::GetForProfile(profile()); 1394 GlobalErrorServiceFactory::GetForProfile(profile());
1399 GlobalError* error = service->GetFirstGlobalErrorWithBubbleView(); 1395 GlobalError* error = service->GetFirstGlobalErrorWithBubbleView();
1400 if (error) 1396 if (error)
1401 error->ShowBubbleView(this); 1397 error->ShowBubbleView(this);
1402 } 1398 }
1403 1399
1404 void Browser::ShowFirstRunBubble() { 1400 void Browser::ShowFirstRunBubble() {
1405 window()->GetLocationBar()->ShowFirstRunBubble(); 1401 window()->GetLocationBar()->ShowFirstRunBubble();
1406 } 1402 }
1407 1403
1408 void Browser::ShowDownload(content::DownloadItem* download) {
1409 if (!window())
1410 return;
1411
1412 // If the download occurs in a new tab, and it's not a save page
1413 // download (started before initial navigation completed) close it.
1414 // Avoid calling CloseContents if the tab is not in this browser's tab strip
1415 // model; this can happen if the download was initiated by something internal
1416 // to Chrome, such as by the app list.
1417 WebContents* source = download->GetWebContents();
1418 if (source && source->GetController().IsInitialNavigation() &&
1419 tab_strip_model_->count() > 1 &&
1420 tab_strip_model_->GetIndexOfWebContents(source) !=
1421 TabStripModel::kNoTab &&
1422 !download->IsSavePackageDownload()) {
1423 CloseContents(source);
1424 }
1425
1426 // Some (app downloads) are not supposed to appear on the shelf.
1427 if (!DownloadItemModel(download).ShouldShowInShelf())
1428 return;
1429
1430 // GetDownloadShelf creates the download shelf if it was not yet created.
1431 window()->GetDownloadShelf()->AddDownload(download);
1432 }
1433
1434 /////////////////////////////////////////////////////////////////////////////// 1404 ///////////////////////////////////////////////////////////////////////////////
1435 // Browser, content::WebContentsDelegate implementation: 1405 // Browser, content::WebContentsDelegate implementation:
1436 1406
1437 WebContents* Browser::OpenURLFromTab(WebContents* source, 1407 WebContents* Browser::OpenURLFromTab(WebContents* source,
1438 const OpenURLParams& params) { 1408 const OpenURLParams& params) {
1439 if (is_devtools()) { 1409 if (is_devtools()) {
1440 DevToolsWindow* window = DevToolsWindow::AsDevToolsWindow(source); 1410 DevToolsWindow* window = DevToolsWindow::AsDevToolsWindow(source);
1441 DCHECK(window); 1411 DCHECK(window);
1442 return window->OpenURLFromTab(source, params); 1412 return window->OpenURLFromTab(source, params);
1443 } 1413 }
(...skipping 1236 matching lines...) Expand 10 before | Expand all | Expand 10 after
2680 if (contents && !allow_js_access) { 2650 if (contents && !allow_js_access) {
2681 contents->web_contents()->GetController().LoadURL( 2651 contents->web_contents()->GetController().LoadURL(
2682 target_url, 2652 target_url,
2683 content::Referrer(), 2653 content::Referrer(),
2684 ui::PAGE_TRANSITION_LINK, 2654 ui::PAGE_TRANSITION_LINK,
2685 std::string()); // No extra headers. 2655 std::string()); // No extra headers.
2686 } 2656 }
2687 2657
2688 return contents != NULL; 2658 return contents != NULL;
2689 } 2659 }
OLDNEW
« chrome/browser/download/download_ui_controller.cc ('K') | « chrome/browser/ui/browser.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698