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

Unified Diff: extensions/browser/api/cast_channel/cast_channel_api.cc

Issue 2891023002: [cast_channel] Make CastSocket not inherit from ApiResource (Closed)
Patch Set: resolve code review comments from Mark Created 3 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: extensions/browser/api/cast_channel/cast_channel_api.cc
diff --git a/extensions/browser/api/cast_channel/cast_channel_api.cc b/extensions/browser/api/cast_channel/cast_channel_api.cc
index 7f64f24d24dd63d99ea3624fde9096a4438823e3..c01a92cc59e7921006d360d48189f8aca165c419 100644
--- a/extensions/browser/api/cast_channel/cast_channel_api.cc
+++ b/extensions/browser/api/cast_channel/cast_channel_api.cc
@@ -21,6 +21,8 @@
#include "content/public/browser/browser_thread.h"
#include "extensions/browser/api/cast_channel/cast_message_util.h"
#include "extensions/browser/api/cast_channel/cast_socket.h"
+#include "extensions/browser/api/cast_channel/cast_socket_service.h"
+#include "extensions/browser/api/cast_channel/cast_socket_service_factory.h"
#include "extensions/browser/api/cast_channel/keep_alive_delegate.h"
#include "extensions/browser/api/cast_channel/logger.h"
#include "extensions/browser/event_router.h"
@@ -165,15 +167,16 @@ std::unique_ptr<base::Timer> CastChannelAPI::GetInjectedTimeoutTimerForTest() {
CastChannelAPI::~CastChannelAPI() {}
-CastChannelAsyncApiFunction::CastChannelAsyncApiFunction() {
-}
+CastChannelAsyncApiFunction::CastChannelAsyncApiFunction()
+ : cast_socket_service_(nullptr) {}
CastChannelAsyncApiFunction::~CastChannelAsyncApiFunction() { }
bool CastChannelAsyncApiFunction::PrePrepare() {
- DCHECK(ApiResourceManager<CastSocket>::Get(browser_context()));
- sockets_ = ApiResourceManager<CastSocket>::Get(browser_context())->data_;
- DCHECK(sockets_);
+ cast_socket_service_ =
+ api::cast_channel::CastSocketServiceFactory::GetInstance()
+ ->GetForBrowserContext(browser_context());
+ DCHECK(cast_socket_service_);
return true;
}
@@ -192,17 +195,14 @@ CastSocket* CastChannelAsyncApiFunction::GetSocketOrCompleteWithError(
return socket;
}
-int CastChannelAsyncApiFunction::AddSocket(CastSocket* socket) {
- DCHECK_CURRENTLY_ON(BrowserThread::IO);
- DCHECK(socket);
- const int id = sockets_->Add(socket);
- socket->set_id(id);
- return id;
+int CastChannelAsyncApiFunction::AddSocket(std::unique_ptr<CastSocket> socket) {
+ auto* sockets = cast_socket_service_->GetOrCreateSocketRegistry();
+ return sockets->AddSocket(std::move(socket));
}
void CastChannelAsyncApiFunction::RemoveSocket(int channel_id) {
- DCHECK_CURRENTLY_ON(BrowserThread::IO);
- sockets_->Remove(extension_->id(), channel_id);
+ auto* sockets = cast_socket_service_->GetOrCreateSocketRegistry();
+ sockets->RemoveSocket(channel_id);
}
void CastChannelAsyncApiFunction::SetResultFromSocket(
@@ -230,8 +230,8 @@ void CastChannelAsyncApiFunction::SetResultFromError(int channel_id,
}
CastSocket* CastChannelAsyncApiFunction::GetSocket(int channel_id) const {
- DCHECK_CURRENTLY_ON(BrowserThread::IO);
- return sockets_->Get(extension_->id(), channel_id);
+ auto* sockets = cast_socket_service_->GetOrCreateSocketRegistry();
+ return sockets->GetSocket(channel_id);
}
void CastChannelAsyncApiFunction::SetResultFromChannelInfo(
@@ -318,7 +318,7 @@ void CastChannelOpenFunction::AsyncWorkStart() {
connect_info.capabilities.get() ? *connect_info.capabilities
: CastDeviceCapability::NONE);
}
- new_channel_id_ = AddSocket(socket);
+ new_channel_id_ = AddSocket(base::WrapUnique(socket));
// Construct read delegates.
std::unique_ptr<api::cast_channel::CastTransport::Delegate> delegate(

Powered by Google App Engine
This is Rietveld 408576698