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

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

Issue 2681203002: Add Browser::SkipCallBeforeUnload so that the browser windows can be closed regardless of beforeunl… (Closed)
Patch Set: comments Created 3 years, 10 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 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <string> 10 #include <string>
(...skipping 625 matching lines...) Expand 10 before | Expand all | Expand 10 after
636 current_index = match_index; 636 current_index = match_index;
637 } 637 }
638 } 638 }
639 639
640 /////////////////////////////////////////////////////////////////////////////// 640 ///////////////////////////////////////////////////////////////////////////////
641 // Browser, OnBeforeUnload handling: 641 // Browser, OnBeforeUnload handling:
642 642
643 bool Browser::ShouldCloseWindow() { 643 bool Browser::ShouldCloseWindow() {
644 if (!CanCloseWithInProgressDownloads()) 644 if (!CanCloseWithInProgressDownloads())
645 return false; 645 return false;
646
647 if (IsFastTabUnloadEnabled()) 646 if (IsFastTabUnloadEnabled())
648 return fast_unload_controller_->ShouldCloseWindow(); 647 return fast_unload_controller_->ShouldCloseWindow();
649 return unload_controller_->ShouldCloseWindow(); 648 return unload_controller_->ShouldCloseWindow();
650 } 649 }
651 650
652 bool Browser::CallBeforeUnloadHandlers( 651 bool Browser::TryToCloseWindow(
652 bool skip_before_unload_event,
653 const base::Callback<void(bool)>& on_close_confirmed) { 653 const base::Callback<void(bool)>& on_close_confirmed) {
654 cancel_download_confirmation_state_ = RESPONSE_RECEIVED; 654 cancel_download_confirmation_state_ = RESPONSE_RECEIVED;
655 if (IsFastTabUnloadEnabled()) { 655 if (IsFastTabUnloadEnabled()) {
656 return fast_unload_controller_->CallBeforeUnloadHandlers( 656 return fast_unload_controller_->TryToCloseWindow(skip_before_unload_event,
657 on_close_confirmed); 657 on_close_confirmed);
658 } 658 }
659 return unload_controller_->CallBeforeUnloadHandlers(on_close_confirmed); 659 return unload_controller_->TryToCloseWindow(skip_before_unload_event,
660 on_close_confirmed);
660 } 661 }
661 662
662 void Browser::ResetBeforeUnloadHandlers() { 663 void Browser::ResetTryToCloseWindow() {
663 cancel_download_confirmation_state_ = NOT_PROMPTED; 664 cancel_download_confirmation_state_ = NOT_PROMPTED;
664 if (IsFastTabUnloadEnabled()) 665 if (IsFastTabUnloadEnabled())
665 fast_unload_controller_->ResetBeforeUnloadHandlers(); 666 fast_unload_controller_->ResetTryToCloseWindow();
666 else 667 else
667 unload_controller_->ResetBeforeUnloadHandlers(); 668 unload_controller_->ResetTryToCloseWindow();
668 } 669 }
669 670
670 bool Browser::HasCompletedUnloadProcessing() const { 671 bool Browser::HasCompletedUnloadProcessing() const {
671 DCHECK(IsFastTabUnloadEnabled()); 672 DCHECK(IsFastTabUnloadEnabled());
672 return fast_unload_controller_->HasCompletedUnloadProcessing(); 673 return fast_unload_controller_->HasCompletedUnloadProcessing();
673 } 674 }
674 675
675 bool Browser::IsAttemptingToCloseBrowser() const { 676 bool Browser::IsAttemptingToCloseBrowser() const {
676 if (IsFastTabUnloadEnabled()) 677 if (IsFastTabUnloadEnabled())
677 return fast_unload_controller_->is_attempting_to_close_browser(); 678 return fast_unload_controller_->is_attempting_to_close_browser();
(...skipping 1941 matching lines...) Expand 10 before | Expand all | Expand 10 after
2619 // new window later, thus we need to navigate the window now. 2620 // new window later, thus we need to navigate the window now.
2620 if (contents) { 2621 if (contents) {
2621 contents->web_contents()->GetController().LoadURL( 2622 contents->web_contents()->GetController().LoadURL(
2622 target_url, content::Referrer(), ui::PAGE_TRANSITION_LINK, 2623 target_url, content::Referrer(), ui::PAGE_TRANSITION_LINK,
2623 std::string()); // No extra headers. 2624 std::string()); // No extra headers.
2624 } 2625 }
2625 } 2626 }
2626 2627
2627 return contents != NULL; 2628 return contents != NULL;
2628 } 2629 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698