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

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

Issue 890005: Add a command line flag to disable infobars. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 9 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 | 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 "app/l10n_util.h" 7 #include "app/l10n_util.h"
8 #include "app/resource_bundle.h" 8 #include "app/resource_bundle.h"
9 #include "app/text_elider.h" 9 #include "app/text_elider.h"
10 #include "base/auto_reset.h" 10 #include "base/auto_reset.h"
(...skipping 937 matching lines...) Expand 10 before | Expand all | Expand 10 after
948 DOMUI* dom_ui = GetDOMUIForCurrentState(); 948 DOMUI* dom_ui = GetDOMUIForCurrentState();
949 if (dom_ui) 949 if (dom_ui)
950 return dom_ui->focus_location_bar_by_default(); 950 return dom_ui->focus_location_bar_by_default();
951 NavigationEntry* entry = controller_.GetActiveEntry(); 951 NavigationEntry* entry = controller_.GetActiveEntry();
952 if (entry && entry->url() == GURL(chrome::kAboutBlankURL)) 952 if (entry && entry->url() == GURL(chrome::kAboutBlankURL))
953 return true; 953 return true;
954 return false; 954 return false;
955 } 955 }
956 956
957 void TabContents::AddInfoBar(InfoBarDelegate* delegate) { 957 void TabContents::AddInfoBar(InfoBarDelegate* delegate) {
958 if (delegate_ && !delegate_->infobars_enabled()) {
959 delegate->InfoBarClosed();
960 return;
961 }
962
958 // Look through the existing InfoBarDelegates we have for a match. If we've 963 // Look through the existing InfoBarDelegates we have for a match. If we've
959 // already got one that matches, then we don't add the new one. 964 // already got one that matches, then we don't add the new one.
960 for (int i = 0; i < infobar_delegate_count(); ++i) { 965 for (int i = 0; i < infobar_delegate_count(); ++i) {
961 if (GetInfoBarDelegateAt(i)->EqualsDelegate(delegate)) { 966 if (GetInfoBarDelegateAt(i)->EqualsDelegate(delegate)) {
962 // Tell the new infobar to close so that it can clean itself up. 967 // Tell the new infobar to close so that it can clean itself up.
963 delegate->InfoBarClosed(); 968 delegate->InfoBarClosed();
964 return; 969 return;
965 } 970 }
966 } 971 }
967 972
968 infobar_delegates_.push_back(delegate); 973 infobar_delegates_.push_back(delegate);
969 NotificationService::current()->Notify( 974 NotificationService::current()->Notify(
970 NotificationType::TAB_CONTENTS_INFOBAR_ADDED, 975 NotificationType::TAB_CONTENTS_INFOBAR_ADDED,
971 Source<TabContents>(this), 976 Source<TabContents>(this),
972 Details<InfoBarDelegate>(delegate)); 977 Details<InfoBarDelegate>(delegate));
973 978
974 // Add ourselves as an observer for navigations the first time a delegate is 979 // Add ourselves as an observer for navigations the first time a delegate is
975 // added. We use this notification to expire InfoBars that need to expire on 980 // added. We use this notification to expire InfoBars that need to expire on
976 // page transitions. 981 // page transitions.
977 if (infobar_delegates_.size() == 1) { 982 if (infobar_delegates_.size() == 1) {
978 registrar_.Add(this, NotificationType::NAV_ENTRY_COMMITTED, 983 registrar_.Add(this, NotificationType::NAV_ENTRY_COMMITTED,
979 Source<NavigationController>(&controller_)); 984 Source<NavigationController>(&controller_));
980 } 985 }
981 } 986 }
982 987
983 void TabContents::RemoveInfoBar(InfoBarDelegate* delegate) { 988 void TabContents::RemoveInfoBar(InfoBarDelegate* delegate) {
989 if (delegate_ && !delegate_->infobars_enabled()) {
990 return;
991 }
992
984 std::vector<InfoBarDelegate*>::iterator it = 993 std::vector<InfoBarDelegate*>::iterator it =
985 find(infobar_delegates_.begin(), infobar_delegates_.end(), delegate); 994 find(infobar_delegates_.begin(), infobar_delegates_.end(), delegate);
986 if (it != infobar_delegates_.end()) { 995 if (it != infobar_delegates_.end()) {
987 InfoBarDelegate* delegate = *it; 996 InfoBarDelegate* delegate = *it;
988 NotificationService::current()->Notify( 997 NotificationService::current()->Notify(
989 NotificationType::TAB_CONTENTS_INFOBAR_REMOVED, 998 NotificationType::TAB_CONTENTS_INFOBAR_REMOVED,
990 Source<TabContents>(this), 999 Source<TabContents>(this),
991 Details<InfoBarDelegate>(delegate)); 1000 Details<InfoBarDelegate>(delegate));
992 infobar_delegates_.erase(it); 1001 infobar_delegates_.erase(it);
993 1002
994 // Remove ourselves as an observer if we are tracking no more InfoBars. 1003 // Remove ourselves as an observer if we are tracking no more InfoBars.
995 if (infobar_delegates_.empty()) { 1004 if (infobar_delegates_.empty()) {
996 registrar_.Remove(this, NotificationType::NAV_ENTRY_COMMITTED, 1005 registrar_.Remove(this, NotificationType::NAV_ENTRY_COMMITTED,
997 Source<NavigationController>(&controller_)); 1006 Source<NavigationController>(&controller_));
998 } 1007 }
999 } 1008 }
1000 } 1009 }
1001 1010
1002 void TabContents::ReplaceInfoBar(InfoBarDelegate* old_delegate, 1011 void TabContents::ReplaceInfoBar(InfoBarDelegate* old_delegate,
1003 InfoBarDelegate* new_delegate) { 1012 InfoBarDelegate* new_delegate) {
1013 if (delegate_ && !delegate_->infobars_enabled()) {
1014 new_delegate->InfoBarClosed();
1015 return;
1016 }
1017
1004 std::vector<InfoBarDelegate*>::iterator it = 1018 std::vector<InfoBarDelegate*>::iterator it =
1005 find(infobar_delegates_.begin(), infobar_delegates_.end(), old_delegate); 1019 find(infobar_delegates_.begin(), infobar_delegates_.end(), old_delegate);
1006 DCHECK(it != infobar_delegates_.end()); 1020 DCHECK(it != infobar_delegates_.end());
1007 1021
1008 // Notify the container about the change of plans. 1022 // Notify the container about the change of plans.
1009 scoped_ptr<std::pair<InfoBarDelegate*, InfoBarDelegate*> > details( 1023 scoped_ptr<std::pair<InfoBarDelegate*, InfoBarDelegate*> > details(
1010 new std::pair<InfoBarDelegate*, InfoBarDelegate*>( 1024 new std::pair<InfoBarDelegate*, InfoBarDelegate*>(
1011 old_delegate, new_delegate)); 1025 old_delegate, new_delegate));
1012 NotificationService::current()->Notify( 1026 NotificationService::current()->Notify(
1013 NotificationType::TAB_CONTENTS_INFOBAR_REPLACED, 1027 NotificationType::TAB_CONTENTS_INFOBAR_REPLACED,
(...skipping 1897 matching lines...) Expand 10 before | Expand all | Expand 10 after
2911 } 2925 }
2912 2926
2913 void TabContents::set_encoding(const std::string& encoding) { 2927 void TabContents::set_encoding(const std::string& encoding) {
2914 encoding_ = CharacterEncoding::GetCanonicalEncodingNameByAliasName(encoding); 2928 encoding_ = CharacterEncoding::GetCanonicalEncodingNameByAliasName(encoding);
2915 } 2929 }
2916 2930
2917 void TabContents::SetAppIcon(const SkBitmap& app_icon) { 2931 void TabContents::SetAppIcon(const SkBitmap& app_icon) {
2918 app_icon_ = app_icon; 2932 app_icon_ = app_icon;
2919 NotifyNavigationStateChanged(INVALIDATE_TITLE); 2933 NotifyNavigationStateChanged(INVALIDATE_TITLE);
2920 } 2934 }
OLDNEW
« no previous file with comments | « chrome/browser/external_tab_container.cc ('k') | chrome/browser/tab_contents/tab_contents_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698