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

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

Issue 5581010: Merge 68646 - Makes instant run before unload listeners.... (Closed) Base URL: svn://svn.chromium.org/chrome/branches/597/src/
Patch Set: Created 10 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 (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/tab_contents/tab_contents.h" 5 #include "chrome/browser/tab_contents/tab_contents.h"
6 6
7 #include <cmath> 7 #include <cmath>
8 8
9 #include "app/l10n_util.h" 9 #include "app/l10n_util.h"
10 #include "app/resource_bundle.h" 10 #include "app/resource_bundle.h"
(...skipping 831 matching lines...) Expand 10 before | Expand all | Expand 10 after
842 void TabContents::HideContents() { 842 void TabContents::HideContents() {
843 // TODO(pkasting): http://b/1239839 Right now we purposefully don't call 843 // TODO(pkasting): http://b/1239839 Right now we purposefully don't call
844 // our superclass HideContents(), because some callers want to be very picky 844 // our superclass HideContents(), because some callers want to be very picky
845 // about the order in which these get called. In addition to making the code 845 // about the order in which these get called. In addition to making the code
846 // here practically impossible to understand, this also means we end up 846 // here practically impossible to understand, this also means we end up
847 // calling TabContents::WasHidden() twice if callers call both versions of 847 // calling TabContents::WasHidden() twice if callers call both versions of
848 // HideContents() on a TabContents. 848 // HideContents() on a TabContents.
849 WasHidden(); 849 WasHidden();
850 } 850 }
851 851
852 bool TabContents::NeedToFireBeforeUnload() {
853 // TODO(creis): Should we fire even for interstitial pages?
854 return notify_disconnection() &&
855 !showing_interstitial_page() &&
856 !render_view_host()->SuddenTerminationAllowed();
857 }
858
852 void TabContents::OpenURL(const GURL& url, const GURL& referrer, 859 void TabContents::OpenURL(const GURL& url, const GURL& referrer,
853 WindowOpenDisposition disposition, 860 WindowOpenDisposition disposition,
854 PageTransition::Type transition) { 861 PageTransition::Type transition) {
855 if (delegate_) 862 if (delegate_)
856 delegate_->OpenURLFromTab(this, url, referrer, disposition, transition); 863 delegate_->OpenURLFromTab(this, url, referrer, disposition, transition);
857 } 864 }
858 865
859 bool TabContents::NavigateToPendingEntry( 866 bool TabContents::NavigateToPendingEntry(
860 NavigationController::ReloadType reload_type) { 867 NavigationController::ReloadType reload_type) {
861 return NavigateToEntry(*controller_.pending_entry(), reload_type); 868 return NavigateToEntry(*controller_.pending_entry(), reload_type);
(...skipping 1923 matching lines...) Expand 10 before | Expand all | Expand 10 after
2785 default_prompt, show_suppress_checkbox, reply_msg); 2792 default_prompt, show_suppress_checkbox, reply_msg);
2786 } else { 2793 } else {
2787 // If we are suppressing messages, just reply as is if the user immediately 2794 // If we are suppressing messages, just reply as is if the user immediately
2788 // pressed "Cancel". 2795 // pressed "Cancel".
2789 OnMessageBoxClosed(reply_msg, false, std::wstring()); 2796 OnMessageBoxClosed(reply_msg, false, std::wstring());
2790 } 2797 }
2791 } 2798 }
2792 2799
2793 void TabContents::RunBeforeUnloadConfirm(const std::wstring& message, 2800 void TabContents::RunBeforeUnloadConfirm(const std::wstring& message,
2794 IPC::Message* reply_msg) { 2801 IPC::Message* reply_msg) {
2802 if (delegate())
2803 delegate()->WillRunBeforeUnloadConfirm();
2795 if (delegate() && delegate()->ShouldSuppressDialogs()) { 2804 if (delegate() && delegate()->ShouldSuppressDialogs()) {
2796 render_view_host()->JavaScriptMessageBoxClosed(reply_msg, true, 2805 render_view_host()->JavaScriptMessageBoxClosed(reply_msg, true,
2797 std::wstring()); 2806 std::wstring());
2798 return; 2807 return;
2799 } 2808 }
2800 is_showing_before_unload_dialog_ = true; 2809 is_showing_before_unload_dialog_ = true;
2801 RunBeforeUnloadDialog(this, message, reply_msg); 2810 RunBeforeUnloadDialog(this, message, reply_msg);
2802 } 2811 }
2803 2812
2804 void TabContents::ShowModalHTMLDialog(const GURL& url, int width, int height, 2813 void TabContents::ShowModalHTMLDialog(const GURL& url, int width, int height,
(...skipping 446 matching lines...) Expand 10 before | Expand all | Expand 10 after
3251 } 3260 }
3252 3261
3253 void TabContents::set_encoding(const std::string& encoding) { 3262 void TabContents::set_encoding(const std::string& encoding) {
3254 encoding_ = CharacterEncoding::GetCanonicalEncodingNameByAliasName(encoding); 3263 encoding_ = CharacterEncoding::GetCanonicalEncodingNameByAliasName(encoding);
3255 } 3264 }
3256 3265
3257 void TabContents::SetAppIcon(const SkBitmap& app_icon) { 3266 void TabContents::SetAppIcon(const SkBitmap& app_icon) {
3258 app_icon_ = app_icon; 3267 app_icon_ = app_icon;
3259 NotifyNavigationStateChanged(INVALIDATE_TITLE); 3268 NotifyNavigationStateChanged(INVALIDATE_TITLE);
3260 } 3269 }
OLDNEW
« no previous file with comments | « chrome/browser/tab_contents/tab_contents.h ('k') | chrome/browser/tab_contents/tab_contents_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698