Index: content/browser/streams/stream_context.h |
diff --git a/content/browser/streams/stream_context.h b/content/browser/streams/stream_context.h |
index b4c6d307fa50484ef241cb0805d0cb8c998f9e29..7b8adcbdea8edf36888d03465e2e010dc1dd03e4 100644 |
--- a/content/browser/streams/stream_context.h |
+++ b/content/browser/streams/stream_context.h |
@@ -13,6 +13,7 @@ |
namespace content { |
class BrowserContext; |
class StreamRegistry; |
+struct StreamContextDeleter; |
// A context class that keeps track of StreamRegistry used by the chrome. |
// There is an instance associated with each BrowserContext. There could be |
@@ -23,7 +24,7 @@ class StreamRegistry; |
// the IO thread (unless specifically called out in doc comments). |
class StreamContext |
: public base::RefCountedThreadSafe<StreamContext, |
- BrowserThread::DeleteOnIOThread> { |
+ StreamContextDeleter> { |
public: |
StreamContext(); |
@@ -38,11 +39,21 @@ class StreamContext |
private: |
friend class base::DeleteHelper<StreamContext>; |
- friend struct BrowserThread::DeleteOnThread<BrowserThread::IO>; |
+ friend class base::RefCountedThreadSafe<StreamContext, |
+ StreamContextDeleter>; |
+ friend struct StreamContextDeleter; |
+ |
+ void DeleteOnCorrectThread() const; |
scoped_ptr<StreamRegistry> registry_; |
}; |
+struct StreamContextDeleter { |
+ static void Destruct(const StreamContext* context) { |
+ context->DeleteOnCorrectThread(); |
+ } |
+}; |
+ |
} // namespace content |
#endif // CONTENT_BROWSER_STREAMS_STREAM_CONTEXT_H_ |