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

Unified Diff: chrome/browser/ui/tab_contents/tab_contents_wrapper.h

Issue 10412061: Fix crashes in DownloadRequestLimiter when extension popups/bubbles initiate downloads automatically (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: comment Created 8 years, 7 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/ui/tab_contents/tab_contents_wrapper.h
diff --git a/chrome/browser/ui/tab_contents/tab_contents_wrapper.h b/chrome/browser/ui/tab_contents/tab_contents_wrapper.h
index 3fc5e14ef66cd57737255cc285abaf671cf706b4..7be5b0a932797536c4da08577127c76a6cac2df8 100644
--- a/chrome/browser/ui/tab_contents/tab_contents_wrapper.h
+++ b/chrome/browser/ui/tab_contents/tab_contents_wrapper.h
@@ -22,7 +22,6 @@ class BlockedContentTabHelper;
class BookmarkTabHelper;
class ConstrainedWindowTabHelper;
class CoreTabHelper;
-class DownloadRequestLimiterObserver;
class ExtensionTabHelper;
class ExternalProtocolObserver;
class FaviconTabHelper;
@@ -75,6 +74,19 @@ class SafeBrowsingTabObserver;
// Wraps WebContents and all of its supporting objects in order to control
// their ownership and lifetime.
//
+// WARNING: Not every place where HTML can run has a TabContentsWrapper. This
+// class is *only* used in a visible, actual, tab inside a browser. Examples of
+// things that do not have tab wrappers include:
+// - Extension background pages and popup bubbles
+// - HTML notification bubbles
+// - Screensavers on Chrome OS
+// - Other random places we decide to display HTML over time
+//
+// Consider carefully whether your feature is something that makes sense only
+// when a tab is displayed, or could make sense in other cases we use HTML. It
+// may makes sense to push down into WebContents and make configurable, or at
+// least to make easy for other WebContents hosts to include and support.
+//
// TODO(avi): Eventually, this class will become TabContents as far as
// the browser front-end is concerned.
class TabContentsWrapper : public content::WebContentsObserver {
@@ -268,7 +280,6 @@ class TabContentsWrapper : public content::WebContentsObserver {
// and silently do their thing live here.)
scoped_ptr<AlternateErrorPageTabObserver> alternate_error_page_tab_observer_;
- scoped_ptr<DownloadRequestLimiterObserver> download_request_limiter_observer_;
scoped_ptr<extensions::WebNavigationTabObserver> webnavigation_observer_;
scoped_ptr<ExternalProtocolObserver> external_protocol_observer_;
scoped_ptr<OmniboxSearchHint> omnibox_search_hint_;

Powered by Google App Engine
This is Rietveld 408576698