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

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: merge 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 83a5d3f1a9b29858019e165111e1ffed92f31b5d..3bff9f272b290864bf73c6a935043394bed00dc2 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 {
@@ -271,7 +283,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_;
« no previous file with comments | « chrome/browser/download/download_request_limiter_unittest.cc ('k') | chrome/browser/ui/tab_contents/tab_contents_wrapper.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698