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

Unified Diff: chrome/browser/tab_contents/tab_contents.cc

Issue 6249010: Cleanup: de-inline a bunch of classes, rename and move "PluginInstaller" to "... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 9 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/tab_contents/tab_contents.cc
===================================================================
--- chrome/browser/tab_contents/tab_contents.cc (revision 71863)
+++ chrome/browser/tab_contents/tab_contents.cc (working copy)
@@ -50,7 +50,7 @@
#include "chrome/browser/modal_html_dialog_delegate.h"
#include "chrome/browser/omnibox_search_hint.h"
#include "chrome/browser/platform_util.h"
-#include "chrome/browser/plugin_installer.h"
+#include "chrome/browser/plugin_installer_infobar_delegate.h"
#include "chrome/browser/prefs/pref_service.h"
#include "chrome/browser/prerender/prerender_manager.h"
#include "chrome/browser/printing/print_preview_tab_controller.h"
@@ -246,83 +246,102 @@
params->request_time = base::Time::Now();
}
+
+// OutdatedPluginInfoBar ------------------------------------------------------
+
class OutdatedPluginInfoBar : public ConfirmInfoBarDelegate {
public:
OutdatedPluginInfoBar(TabContents* tab_contents,
const string16& name,
- const GURL& update_url)
- : ConfirmInfoBarDelegate(tab_contents),
- tab_contents_(tab_contents),
- name_(name),
- update_url_(update_url) {
- UserMetrics::RecordAction(UserMetricsAction("OutdatedPluginInfobar.Shown"));
- tab_contents->AddInfoBar(this);
- }
+ const GURL& update_url);
- virtual int GetButtons() const {
- return BUTTON_OK | BUTTON_CANCEL | BUTTON_OK_DEFAULT;
- }
+ private:
+ virtual ~OutdatedPluginInfoBar();
- virtual string16 GetButtonLabel(InfoBarButton button) const {
- if (button == BUTTON_CANCEL)
- return l10n_util::GetStringUTF16(IDS_PLUGIN_ENABLE_TEMPORARILY);
- if (button == BUTTON_OK)
- return l10n_util::GetStringUTF16(IDS_PLUGIN_UPDATE);
- return ConfirmInfoBarDelegate::GetButtonLabel(button);
- }
+ // ConfirmInfoBarDelegate:
+ virtual void InfoBarClosed();
+ virtual SkBitmap* GetIcon() const;
+ virtual string16 GetMessageText() const;
+ virtual int GetButtons() const;
+ virtual string16 GetButtonLabel(InfoBarButton button) const;
+ virtual bool Accept();
+ virtual bool Cancel();
+ virtual string16 GetLinkText();
+ virtual bool LinkClicked(WindowOpenDisposition disposition);
- virtual string16 GetMessageText() const {
- return l10n_util::GetStringFUTF16(IDS_PLUGIN_OUTDATED_PROMPT, name_);
- }
+ TabContents* tab_contents_;
+ string16 name_;
+ GURL update_url_;
+};
- virtual string16 GetLinkText() {
- return l10n_util::GetStringUTF16(IDS_LEARN_MORE);
- }
+OutdatedPluginInfoBar::OutdatedPluginInfoBar(TabContents* tab_contents,
+ const string16& name,
+ const GURL& update_url)
+ : ConfirmInfoBarDelegate(tab_contents),
+ tab_contents_(tab_contents),
+ name_(name),
+ update_url_(update_url) {
+ UserMetrics::RecordAction(UserMetricsAction("OutdatedPluginInfobar.Shown"));
+ tab_contents->AddInfoBar(this);
+}
- virtual SkBitmap* GetIcon() const {
- return ResourceBundle::GetSharedInstance().GetBitmapNamed(
- IDR_INFOBAR_PLUGIN_INSTALL);
- }
+OutdatedPluginInfoBar::~OutdatedPluginInfoBar() {
+}
- virtual bool Accept() {
- UserMetrics::RecordAction(
- UserMetricsAction("OutdatedPluginInfobar.Update"));
- tab_contents_->OpenURL(update_url_, GURL(),
- NEW_FOREGROUND_TAB, PageTransition::LINK);
- return false;
- }
+void OutdatedPluginInfoBar::InfoBarClosed() {
+ UserMetrics::RecordAction(UserMetricsAction("OutdatedPluginInfobar.Closed"));
+ delete this;
+}
- virtual bool Cancel() {
- UserMetrics::RecordAction(
- UserMetricsAction("OutdatedPluginInfobar.AllowThisTime"));
- tab_contents_->render_view_host()->LoadBlockedPlugins();
- return true;
- }
+SkBitmap* OutdatedPluginInfoBar::GetIcon() const {
+ return ResourceBundle::GetSharedInstance().GetBitmapNamed(
+ IDR_INFOBAR_PLUGIN_INSTALL);
+}
- virtual bool LinkClicked(WindowOpenDisposition disposition) {
- UserMetrics::RecordAction(
- UserMetricsAction("OutdatedPluginInfobar.LearnMore"));
- // TODO(bauerb): Navigate to a help page explaining why we disabled
- // the plugin, once we have one.
- return false;
- }
+string16 OutdatedPluginInfoBar::GetMessageText() const {
+ return l10n_util::GetStringFUTF16(IDS_PLUGIN_OUTDATED_PROMPT, name_);
+}
- virtual void InfoBarClosed() {
- UserMetrics::RecordAction(
- UserMetricsAction("OutdatedPluginInfobar.Closed"));
- delete this;
- }
+int OutdatedPluginInfoBar::GetButtons() const {
+ return BUTTON_OK | BUTTON_CANCEL;
+}
- private:
- TabContents* tab_contents_;
- string16 name_;
- GURL update_url_;
-};
+string16 OutdatedPluginInfoBar::GetButtonLabel(InfoBarButton button) const {
+ return l10n_util::GetStringUTF16((button == BUTTON_OK) ?
+ IDS_PLUGIN_UPDATE : IDS_PLUGIN_ENABLE_TEMPORARILY);
+}
+bool OutdatedPluginInfoBar::Accept() {
+ UserMetrics::RecordAction(UserMetricsAction("OutdatedPluginInfobar.Update"));
+ tab_contents_->OpenURL(update_url_, GURL(), NEW_FOREGROUND_TAB,
+ PageTransition::LINK);
+ return false;
+}
+
+bool OutdatedPluginInfoBar::Cancel() {
+ UserMetrics::RecordAction(
+ UserMetricsAction("OutdatedPluginInfobar.AllowThisTime"));
+ tab_contents_->render_view_host()->LoadBlockedPlugins();
+ return false;
+}
+
+string16 OutdatedPluginInfoBar::GetLinkText() {
+ return l10n_util::GetStringUTF16(IDS_LEARN_MORE);
+}
+
+bool OutdatedPluginInfoBar::LinkClicked(WindowOpenDisposition disposition) {
+ UserMetrics::RecordAction(
+ UserMetricsAction("OutdatedPluginInfobar.LearnMore"));
+ // TODO(bauerb): Navigate to a help page explaining why we disabled
+ // the plugin, once we have one.
+ return false;
+}
+
} // namespace
-// -----------------------------------------------------------------------------
+// TabContents ----------------------------------------------------------------
+
// static
int TabContents::find_request_id_counter_ = -1;
@@ -609,9 +628,9 @@
return GetURL().SchemeIs(chrome::kExtensionScheme);
}
-PluginInstaller* TabContents::GetPluginInstaller() {
+PluginInstallerInfoBarDelegate* TabContents::GetPluginInstaller() {
if (plugin_installer_.get() == NULL)
- plugin_installer_.reset(new PluginInstaller(this));
+ plugin_installer_.reset(new PluginInstallerInfoBarDelegate(this));
return plugin_installer_.get();
}
@@ -1189,8 +1208,7 @@
infobar_delegates_.push_back(delegate);
NotificationService::current()->Notify(
- NotificationType::TAB_CONTENTS_INFOBAR_ADDED,
- Source<TabContents>(this),
+ NotificationType::TAB_CONTENTS_INFOBAR_ADDED, Source<TabContents>(this),
Details<InfoBarDelegate>(delegate));
// Add ourselves as an observer for navigations the first time a delegate is
@@ -1216,19 +1234,11 @@
Source<TabContents>(this),
Details<InfoBarDelegate>(delegate));
- // Just to be safe, make sure the delegate was not removed by an observer.
Elliot Glaysher 2011/01/20 01:02:03 I assume that this safety code is obsolete?
Peter Kasting 2011/01/20 01:45:14 Yes. There's no current code that would trip this
- it = find(infobar_delegates_.begin(), infobar_delegates_.end(), delegate);
- if (it != infobar_delegates_.end()) {
- infobar_delegates_.erase(it);
- // Remove ourselves as an observer if we are tracking no more InfoBars.
- if (infobar_delegates_.empty()) {
- registrar_.Remove(this, NotificationType::NAV_ENTRY_COMMITTED,
- Source<NavigationController>(&controller_));
- }
- } else {
- // If you hit this NOTREACHED, please comment in bug
- // http://crbug.com/50428 how you got there.
- NOTREACHED();
+ infobar_delegates_.erase(it);
+ // Remove ourselves as an observer if we are tracking no more InfoBars.
+ if (infobar_delegates_.empty()) {
+ registrar_.Remove(this, NotificationType::NAV_ENTRY_COMMITTED,
+ Source<NavigationController>(&controller_));
}
}
}
@@ -1253,16 +1263,8 @@
Source<TabContents>(this),
Details<std::pair<InfoBarDelegate*, InfoBarDelegate*> >(details.get()));
- // Just to be safe, make sure the delegate was not removed by an observer.
- it = find(infobar_delegates_.begin(), infobar_delegates_.end(), old_delegate);
- if (it != infobar_delegates_.end()) {
- // Remove the old one.
- infobar_delegates_.erase(it);
- } else {
- // If you hit this NOTREACHED, please comment in bug
- // http://crbug.com/50428 how you got there.
- NOTREACHED();
- }
+ // Remove the old one.
+ infobar_delegates_.erase(it);
// Add the new one.
DCHECK(find(infobar_delegates_.begin(),
@@ -1842,13 +1844,6 @@
for (int i = infobar_delegate_count() - 1; i >= 0; --i) {
InfoBarDelegate* delegate = GetInfoBarDelegateAt(i);
- if (!delegate) {
- // If you hit this NOTREACHED, please comment in bug
- // http://crbug.com/50428 how you got there.
- NOTREACHED();
- continue;
- }
-
if (delegate->ShouldExpire(details))
RemoveInfoBar(delegate);
}
@@ -2316,16 +2311,14 @@
}
SkBitmap* crash_icon = ResourceBundle::GetSharedInstance().GetBitmapNamed(
IDR_INFOBAR_PLUGIN_CRASHED);
- AddInfoBar(new SimpleAlertInfoBarDelegate(
- this, l10n_util::GetStringFUTF16(IDS_PLUGIN_CRASHED_PROMPT,
- WideToUTF16Hack(plugin_name)),
- crash_icon, true));
+ AddInfoBar(new SimpleAlertInfoBarDelegate(this, crash_icon,
+ l10n_util::GetStringFUTF16(IDS_PLUGIN_CRASHED_PROMPT,
+ WideToUTF16Hack(plugin_name)), true));
}
void TabContents::OnCrashedWorker() {
- AddInfoBar(new SimpleAlertInfoBarDelegate(
- this, l10n_util::GetStringUTF16(IDS_WEBWORKER_CRASHED_PROMPT),
- NULL, true));
+ AddInfoBar(new SimpleAlertInfoBarDelegate(this, NULL,
+ l10n_util::GetStringUTF16(IDS_WEBWORKER_CRASHED_PROMPT), true));
}
void TabContents::OnDidGetApplicationInfo(int32 page_id,
@@ -3060,9 +3053,8 @@
}
void TabContents::OnJSOutOfMemory() {
- AddInfoBar(new SimpleAlertInfoBarDelegate(
- this, l10n_util::GetStringUTF16(IDS_JS_OUT_OF_MEMORY_PROMPT),
- NULL, true));
+ AddInfoBar(new SimpleAlertInfoBarDelegate(this, NULL,
+ l10n_util::GetStringUTF16(IDS_JS_OUT_OF_MEMORY_PROMPT), true));
}
void TabContents::OnCrossSiteResponse(int new_render_process_host_id,

Powered by Google App Engine
This is Rietveld 408576698