| OLD | NEW |
| 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 1219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1230 // Instant overlay state. | 1230 // Instant overlay state. |
| 1231 // ModeChanged() updates bookmark bar state for all mode transitions except | 1231 // ModeChanged() updates bookmark bar state for all mode transitions except |
| 1232 // when new mode is |SEARCH_SUGGESTIONS|, because that needs to be done when | 1232 // when new mode is |SEARCH_SUGGESTIONS|, because that needs to be done when |
| 1233 // the suggestions are ready. | 1233 // the suggestions are ready. |
| 1234 if (mode.is_search_suggestions() && | 1234 if (mode.is_search_suggestions() && |
| 1235 bookmark_bar_state_ == BookmarkBar::SHOW) { | 1235 bookmark_bar_state_ == BookmarkBar::SHOW) { |
| 1236 UpdateBookmarkBarState(BOOKMARK_BAR_STATE_CHANGE_TAB_STATE); | 1236 UpdateBookmarkBarState(BOOKMARK_BAR_STATE_CHANGE_TAB_STATE); |
| 1237 } | 1237 } |
| 1238 } | 1238 } |
| 1239 | 1239 |
| 1240 void Browser::ShowDownload(content::DownloadItem* download) { |
| 1241 if (!window()) |
| 1242 return; |
| 1243 |
| 1244 // If the download occurs in a new tab, and it's not a save page |
| 1245 // download (started before initial navigation completed) close it. |
| 1246 WebContents* source = download->GetWebContents(); |
| 1247 if (source && source->GetController().IsInitialNavigation() && |
| 1248 tab_strip_model_->count() > 1 && !download->IsSavePackageDownload()) { |
| 1249 CloseContents(source); |
| 1250 } |
| 1251 |
| 1252 // Some (app downloads) are not supposed to appear on the shelf. |
| 1253 if (!DownloadItemModel(download).ShouldShowInShelf()) |
| 1254 return; |
| 1255 |
| 1256 // GetDownloadShelf creates the download shelf if it was not yet created. |
| 1257 DownloadShelf* shelf = window()->GetDownloadShelf(); |
| 1258 shelf->AddDownload(download); |
| 1259 } |
| 1260 |
| 1240 /////////////////////////////////////////////////////////////////////////////// | 1261 /////////////////////////////////////////////////////////////////////////////// |
| 1241 // Browser, content::WebContentsDelegate implementation: | 1262 // Browser, content::WebContentsDelegate implementation: |
| 1242 | 1263 |
| 1243 WebContents* Browser::OpenURLFromTab(WebContents* source, | 1264 WebContents* Browser::OpenURLFromTab(WebContents* source, |
| 1244 const OpenURLParams& params) { | 1265 const OpenURLParams& params) { |
| 1245 chrome::NavigateParams nav_params(this, params.url, params.transition); | 1266 chrome::NavigateParams nav_params(this, params.url, params.transition); |
| 1246 nav_params.source_contents = source; | 1267 nav_params.source_contents = source; |
| 1247 nav_params.referrer = params.referrer; | 1268 nav_params.referrer = params.referrer; |
| 1248 nav_params.extra_headers = params.extra_headers; | 1269 nav_params.extra_headers = params.extra_headers; |
| 1249 nav_params.disposition = params.disposition; | 1270 nav_params.disposition = params.disposition; |
| (...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1395 } | 1416 } |
| 1396 | 1417 |
| 1397 void Browser::RenderWidgetShowing() { | 1418 void Browser::RenderWidgetShowing() { |
| 1398 window_->DisableInactiveFrame(); | 1419 window_->DisableInactiveFrame(); |
| 1399 } | 1420 } |
| 1400 | 1421 |
| 1401 int Browser::GetExtraRenderViewHeight() const { | 1422 int Browser::GetExtraRenderViewHeight() const { |
| 1402 return window_->GetExtraRenderViewHeight(); | 1423 return window_->GetExtraRenderViewHeight(); |
| 1403 } | 1424 } |
| 1404 | 1425 |
| 1405 void Browser::OnStartDownload(WebContents* source, | |
| 1406 content::DownloadItem* download) { | |
| 1407 if (!DownloadItemModel(download).ShouldShowInShelf()) | |
| 1408 return; | |
| 1409 | |
| 1410 WebContents* constrained = GetConstrainingWebContents(source); | |
| 1411 if (constrained != source) { | |
| 1412 // Download in a constrained popup is shown in the tab that opened it. | |
| 1413 constrained->GetDelegate()->OnStartDownload(constrained, download); | |
| 1414 return; | |
| 1415 } | |
| 1416 | |
| 1417 if (!window()) | |
| 1418 return; | |
| 1419 | |
| 1420 // GetDownloadShelf creates the download shelf if it was not yet created. | |
| 1421 DownloadShelf* shelf = window()->GetDownloadShelf(); | |
| 1422 shelf->AddDownload(download); | |
| 1423 | |
| 1424 // If the download occurs in a new tab, and it's not a save page | |
| 1425 // download (started before initial navigation completed), close it. | |
| 1426 if (source->GetController().IsInitialNavigation() && | |
| 1427 tab_strip_model_->count() > 1 && !download->IsSavePackageDownload()) | |
| 1428 CloseContents(source); | |
| 1429 } | |
| 1430 | |
| 1431 void Browser::ViewSourceForTab(WebContents* source, const GURL& page_url) { | 1426 void Browser::ViewSourceForTab(WebContents* source, const GURL& page_url) { |
| 1432 DCHECK(source); | 1427 DCHECK(source); |
| 1433 chrome::ViewSource(this, source); | 1428 chrome::ViewSource(this, source); |
| 1434 } | 1429 } |
| 1435 | 1430 |
| 1436 void Browser::ViewSourceForFrame(WebContents* source, | 1431 void Browser::ViewSourceForFrame(WebContents* source, |
| 1437 const GURL& frame_url, | 1432 const GURL& frame_url, |
| 1438 const std::string& frame_content_state) { | 1433 const std::string& frame_content_state) { |
| 1439 DCHECK(source); | 1434 DCHECK(source); |
| 1440 chrome::ViewSource(this, source, frame_url, frame_content_state); | 1435 chrome::ViewSource(this, source, frame_url, frame_content_state); |
| (...skipping 818 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2259 if (contents && !allow_js_access) { | 2254 if (contents && !allow_js_access) { |
| 2260 contents->web_contents()->GetController().LoadURL( | 2255 contents->web_contents()->GetController().LoadURL( |
| 2261 target_url, | 2256 target_url, |
| 2262 content::Referrer(), | 2257 content::Referrer(), |
| 2263 content::PAGE_TRANSITION_LINK, | 2258 content::PAGE_TRANSITION_LINK, |
| 2264 std::string()); // No extra headers. | 2259 std::string()); // No extra headers. |
| 2265 } | 2260 } |
| 2266 | 2261 |
| 2267 return contents != NULL; | 2262 return contents != NULL; |
| 2268 } | 2263 } |
| OLD | NEW |