summaryrefslogtreecommitdiffstats
path: root/content/public/browser
diff options
context:
space:
mode:
authorrsleevi@chromium.org <rsleevi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-11 19:30:55 +0000
committerrsleevi@chromium.org <rsleevi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-11 19:30:55 +0000
commit871da305e61696753db715bf68fedec2b071fde4 (patch)
treee485e66cd37a1f14d0e72adc29cdb6fbbe38267b /content/public/browser
parent66149a5cbd355757e63a82b9d3280cc6e0d36da8 (diff)
downloadchromium_src-871da305e61696753db715bf68fedec2b071fde4.zip
chromium_src-871da305e61696753db715bf68fedec2b071fde4.tar.gz
chromium_src-871da305e61696753db715bf68fedec2b071fde4.tar.bz2
RefCounted types should not have public destructors, content/ remaining bits
BUG=123295 TEST=none TBR=jam Review URL: https://chromiumcodereview.appspot.com/10069054 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@136631 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/public/browser')
-rw-r--r--content/public/browser/browser_message_filter.cc96
-rw-r--r--content/public/browser/browser_message_filter.h3
-rw-r--r--content/public/browser/download_manager.h10
-rw-r--r--content/public/browser/indexed_db_context.h6
-rw-r--r--content/public/browser/resource_dispatcher_host_login_delegate.h6
-rw-r--r--content/public/browser/speech_recognizer.h9
6 files changed, 67 insertions, 63 deletions
diff --git a/content/public/browser/browser_message_filter.cc b/content/public/browser/browser_message_filter.cc
index 209f4a9..3d695ab 100644
--- a/content/public/browser/browser_message_filter.cc
+++ b/content/public/browser/browser_message_filter.cc
@@ -22,10 +22,6 @@ BrowserMessageFilter::BrowserMessageFilter()
: channel_(NULL), peer_handle_(base::kNullProcessHandle) {
}
-BrowserMessageFilter::~BrowserMessageFilter() {
- base::CloseProcessHandle(peer_handle_);
-}
-
void BrowserMessageFilter::OnFilterAdded(IPC::Channel* channel) {
channel_ = channel;
}
@@ -40,6 +36,32 @@ void BrowserMessageFilter::OnChannelConnected(int32 peer_pid) {
}
}
+bool BrowserMessageFilter::OnMessageReceived(const IPC::Message& message) {
+ BrowserThread::ID thread = BrowserThread::IO;
+ OverrideThreadForMessage(message, &thread);
+
+ if (thread == BrowserThread::IO) {
+ scoped_refptr<base::TaskRunner> runner =
+ OverrideTaskRunnerForMessage(message);
+ if (runner) {
+ runner->PostTask(FROM_HERE,
+ base::Bind(base::IgnoreResult(&BrowserMessageFilter::DispatchMessage),
+ this, message));
+ return true;
+ }
+ return DispatchMessage(message);
+ }
+
+ if (thread == BrowserThread::UI && !CheckCanDispatchOnUI(message, this))
+ return true;
+
+ BrowserThread::PostTask(
+ thread, FROM_HERE,
+ base::Bind(base::IgnoreResult(&BrowserMessageFilter::DispatchMessage),
+ this, message));
+ return true;
+}
+
bool BrowserMessageFilter::Send(IPC::Message* message) {
if (message->is_sync()) {
// We don't support sending synchronous messages from the browser. If we
@@ -75,50 +97,6 @@ base::TaskRunner* BrowserMessageFilter::OverrideTaskRunnerForMessage(
return NULL;
}
-bool BrowserMessageFilter::OnMessageReceived(const IPC::Message& message) {
- BrowserThread::ID thread = BrowserThread::IO;
- OverrideThreadForMessage(message, &thread);
-
- if (thread == BrowserThread::IO) {
- scoped_refptr<base::TaskRunner> runner =
- OverrideTaskRunnerForMessage(message);
- if (runner) {
- runner->PostTask(FROM_HERE,
- base::Bind(base::IgnoreResult(&BrowserMessageFilter::DispatchMessage),
- this, message));
- return true;
- }
- return DispatchMessage(message);
- }
-
- if (thread == BrowserThread::UI && !CheckCanDispatchOnUI(message, this))
- return true;
-
- BrowserThread::PostTask(
- thread, FROM_HERE,
- base::Bind(base::IgnoreResult(&BrowserMessageFilter::DispatchMessage),
- this, message));
- return true;
-}
-
-bool BrowserMessageFilter::DispatchMessage(const IPC::Message& message) {
- bool message_was_ok = true;
- bool rv = OnMessageReceived(message, &message_was_ok);
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO) || rv) <<
- "Must handle messages that were dispatched to another thread!";
- if (!message_was_ok) {
- content::RecordAction(UserMetricsAction("BadMessageTerminate_BMF"));
- BadMessageReceived();
- }
-
- return rv;
-}
-
-void BrowserMessageFilter::BadMessageReceived() {
- base::KillProcess(peer_handle(), content::RESULT_CODE_KILLED_BAD_MESSAGE,
- false);
-}
-
bool BrowserMessageFilter::CheckCanDispatchOnUI(const IPC::Message& message,
IPC::Message::Sender* sender) {
#if defined(OS_WIN) && !defined(USE_AURA)
@@ -144,4 +122,26 @@ bool BrowserMessageFilter::CheckCanDispatchOnUI(const IPC::Message& message,
return true;
}
+BrowserMessageFilter::~BrowserMessageFilter() {
+ base::CloseProcessHandle(peer_handle_);
+}
+
+void BrowserMessageFilter::BadMessageReceived() {
+ base::KillProcess(peer_handle(), content::RESULT_CODE_KILLED_BAD_MESSAGE,
+ false);
+}
+
+bool BrowserMessageFilter::DispatchMessage(const IPC::Message& message) {
+ bool message_was_ok = true;
+ bool rv = OnMessageReceived(message, &message_was_ok);
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO) || rv) <<
+ "Must handle messages that were dispatched to another thread!";
+ if (!message_was_ok) {
+ content::RecordAction(UserMetricsAction("BadMessageTerminate_BMF"));
+ BadMessageReceived();
+ }
+
+ return rv;
+}
+
} // namespace content
diff --git a/content/public/browser/browser_message_filter.h b/content/public/browser/browser_message_filter.h
index 32cfc90..441ad70 100644
--- a/content/public/browser/browser_message_filter.h
+++ b/content/public/browser/browser_message_filter.h
@@ -24,7 +24,6 @@ class CONTENT_EXPORT BrowserMessageFilter :
public IPC::Message::Sender {
public:
BrowserMessageFilter();
- virtual ~BrowserMessageFilter();
// IPC::ChannelProxy::MessageFilter methods. If you override them, make sure
// to call them as well. These are always called on the IO thread.
@@ -73,6 +72,8 @@ class CONTENT_EXPORT BrowserMessageFilter :
IPC::Message::Sender* sender);
protected:
+ virtual ~BrowserMessageFilter();
+
// Call this if a message couldn't be deserialized. This kills the renderer.
// Can be called on any thread.
virtual void BadMessageReceived();
diff --git a/content/public/browser/download_manager.h b/content/public/browser/download_manager.h
index b0039bd..b405a55 100644
--- a/content/public/browser/download_manager.h
+++ b/content/public/browser/download_manager.h
@@ -60,8 +60,6 @@ class DownloadUrlParameters;
class CONTENT_EXPORT DownloadManager
: public base::RefCountedThreadSafe<DownloadManager> {
public:
- virtual ~DownloadManager() {}
-
static DownloadManager* Create(
DownloadManagerDelegate* delegate,
net::NetLog* net_log);
@@ -247,11 +245,11 @@ class CONTENT_EXPORT DownloadManager
virtual void SetDownloadManagerDelegate(
DownloadManagerDelegate* delegate) = 0;
+ protected:
+ virtual ~DownloadManager() {}
+
private:
- friend class base::RefCountedThreadSafe<
- DownloadManager, BrowserThread::DeleteOnUIThread>;
- friend struct BrowserThread::DeleteOnThread<BrowserThread::UI>;
- friend class base::DeleteHelper<DownloadManager>;
+ friend class base::RefCountedThreadSafe<DownloadManager>;
};
} // namespace content
diff --git a/content/public/browser/indexed_db_context.h b/content/public/browser/indexed_db_context.h
index 91b8664..8c51288 100644
--- a/content/public/browser/indexed_db_context.h
+++ b/content/public/browser/indexed_db_context.h
@@ -24,8 +24,6 @@ namespace content {
// Call these methods only on the WebKit thread.
class IndexedDBContext : public base::RefCountedThreadSafe<IndexedDBContext> {
public:
- virtual ~IndexedDBContext() {}
-
// Methods used in response to QuotaManager requests.
virtual std::vector<GURL> GetAllOrigins() = 0;
virtual int64 GetOriginDiskUsage(const GURL& origin_url) = 0;
@@ -36,6 +34,10 @@ class IndexedDBContext : public base::RefCountedThreadSafe<IndexedDBContext> {
// Get the file name of the local storage file for the given origin.
virtual FilePath GetFilePathForTesting(const string16& origin_id) const = 0;
+
+ protected:
+ friend class base::RefCountedThreadSafe<IndexedDBContext>;
+ virtual ~IndexedDBContext() {}
};
} // namespace content
diff --git a/content/public/browser/resource_dispatcher_host_login_delegate.h b/content/public/browser/resource_dispatcher_host_login_delegate.h
index 0d99edb..d856686 100644
--- a/content/public/browser/resource_dispatcher_host_login_delegate.h
+++ b/content/public/browser/resource_dispatcher_host_login_delegate.h
@@ -20,11 +20,13 @@ namespace content {
class CONTENT_EXPORT ResourceDispatcherHostLoginDelegate
: public base::RefCountedThreadSafe<ResourceDispatcherHostLoginDelegate> {
public:
- virtual ~ResourceDispatcherHostLoginDelegate() {}
-
// Notify the login delegate that the request was cancelled.
// This function can only be called from the IO thread.
virtual void OnRequestCancelled() = 0;
+
+ protected:
+ friend class base::RefCountedThreadSafe<ResourceDispatcherHostLoginDelegate>;
+ virtual ~ResourceDispatcherHostLoginDelegate() {}
};
} // public content
diff --git a/content/public/browser/speech_recognizer.h b/content/public/browser/speech_recognizer.h
index a9cec70..4553952 100644
--- a/content/public/browser/speech_recognizer.h
+++ b/content/public/browser/speech_recognizer.h
@@ -25,7 +25,6 @@ class SpeechRecognitionEventListener;
// extensions.
class SpeechRecognizer : public base::RefCountedThreadSafe<SpeechRecognizer> {
public:
-
CONTENT_EXPORT static SpeechRecognizer* Create(
SpeechRecognitionEventListener* event_listener,
int session_id,
@@ -36,8 +35,6 @@ class SpeechRecognizer : public base::RefCountedThreadSafe<SpeechRecognizer> {
const std::string& hardware_info,
const std::string& origin_url);
- virtual ~SpeechRecognizer() {}
-
// Starts audio recording and the recognition process. The same
// SpeechRecognizer instance can be used multiple times for speech recognition
// though each recognition request can be made only after the previous one
@@ -56,8 +53,12 @@ class SpeechRecognizer : public base::RefCountedThreadSafe<SpeechRecognizer> {
// or waiting for a result.
virtual bool IsActive() const = 0;
- // Checks wether the recognizer is capturing audio.
+ // Checks whether the recognizer is capturing audio.
virtual bool IsCapturingAudio() const = 0;
+
+ protected:
+ friend class base::RefCountedThreadSafe<SpeechRecognizer>;
+ virtual ~SpeechRecognizer() {}
};
} // namespace content