mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
Depend directly on chrome targets and unfork code (issue #1947)
This commit is contained in:
@@ -45,24 +45,25 @@ void CreateResponseHeadersDictionary(const net::HttpResponseHeaders* headers,
|
||||
|
||||
} // namespace
|
||||
|
||||
namespace streams_private = api::streams_private;
|
||||
namespace streams_private = api::cef::streams_private;
|
||||
|
||||
// static
|
||||
StreamsPrivateAPI* StreamsPrivateAPI::Get(content::BrowserContext* context) {
|
||||
CefStreamsPrivateAPI* CefStreamsPrivateAPI::Get(
|
||||
content::BrowserContext* context) {
|
||||
return GetFactoryInstance()->Get(context);
|
||||
}
|
||||
|
||||
StreamsPrivateAPI::StreamsPrivateAPI(content::BrowserContext* context)
|
||||
CefStreamsPrivateAPI::CefStreamsPrivateAPI(content::BrowserContext* context)
|
||||
: browser_context_(context),
|
||||
extension_registry_observer_(this),
|
||||
weak_ptr_factory_(this) {
|
||||
extension_registry_observer_.Add(ExtensionRegistry::Get(browser_context_));
|
||||
}
|
||||
|
||||
StreamsPrivateAPI::~StreamsPrivateAPI() {
|
||||
CefStreamsPrivateAPI::~CefStreamsPrivateAPI() {
|
||||
}
|
||||
|
||||
void StreamsPrivateAPI::ExecuteMimeTypeHandler(
|
||||
void CefStreamsPrivateAPI::ExecuteMimeTypeHandler(
|
||||
const std::string& extension_id,
|
||||
int tab_id,
|
||||
std::unique_ptr<content::StreamInfo> stream,
|
||||
@@ -123,7 +124,7 @@ void StreamsPrivateAPI::ExecuteMimeTypeHandler(
|
||||
streams_[extension_id][url] = make_linked_ptr(stream->handle.release());
|
||||
}
|
||||
|
||||
void StreamsPrivateAPI::AbortStream(const std::string& extension_id,
|
||||
void CefStreamsPrivateAPI::AbortStream(const std::string& extension_id,
|
||||
const GURL& stream_url,
|
||||
const base::Closure& callback) {
|
||||
StreamMap::iterator extension_it = streams_.find(extension_id);
|
||||
@@ -143,36 +144,36 @@ void StreamsPrivateAPI::AbortStream(const std::string& extension_id,
|
||||
url_map->erase(url_it);
|
||||
}
|
||||
|
||||
void StreamsPrivateAPI::OnExtensionUnloaded(
|
||||
void CefStreamsPrivateAPI::OnExtensionUnloaded(
|
||||
content::BrowserContext* browser_context,
|
||||
const Extension* extension,
|
||||
UnloadedExtensionInfo::Reason reason) {
|
||||
streams_.erase(extension->id());
|
||||
}
|
||||
|
||||
StreamsPrivateAbortFunction::StreamsPrivateAbortFunction() {
|
||||
CefStreamsPrivateAbortFunction::CefStreamsPrivateAbortFunction() {
|
||||
}
|
||||
|
||||
ExtensionFunction::ResponseAction StreamsPrivateAbortFunction::Run() {
|
||||
ExtensionFunction::ResponseAction CefStreamsPrivateAbortFunction::Run() {
|
||||
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
|
||||
EXTENSION_FUNCTION_VALIDATE(args_->GetString(0, &stream_url_));
|
||||
StreamsPrivateAPI::Get(browser_context())->AbortStream(
|
||||
CefStreamsPrivateAPI::Get(browser_context())->AbortStream(
|
||||
extension_id(), GURL(stream_url_), base::Bind(
|
||||
&StreamsPrivateAbortFunction::OnClose, this));
|
||||
&CefStreamsPrivateAbortFunction::OnClose, this));
|
||||
return RespondLater();
|
||||
}
|
||||
|
||||
void StreamsPrivateAbortFunction::OnClose() {
|
||||
void CefStreamsPrivateAbortFunction::OnClose() {
|
||||
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
|
||||
Respond(NoArguments());
|
||||
}
|
||||
|
||||
static base::LazyInstance<BrowserContextKeyedAPIFactory<StreamsPrivateAPI> >
|
||||
static base::LazyInstance<BrowserContextKeyedAPIFactory<CefStreamsPrivateAPI> >
|
||||
g_factory = LAZY_INSTANCE_INITIALIZER;
|
||||
|
||||
// static
|
||||
BrowserContextKeyedAPIFactory<StreamsPrivateAPI>*
|
||||
StreamsPrivateAPI::GetFactoryInstance() {
|
||||
BrowserContextKeyedAPIFactory<CefStreamsPrivateAPI>*
|
||||
CefStreamsPrivateAPI::GetFactoryInstance() {
|
||||
return g_factory.Pointer();
|
||||
}
|
||||
|
||||
|
@@ -24,14 +24,14 @@ struct StreamInfo;
|
||||
namespace extensions {
|
||||
class ExtensionRegistry;
|
||||
|
||||
class StreamsPrivateAPI : public BrowserContextKeyedAPI,
|
||||
public ExtensionRegistryObserver {
|
||||
class CefStreamsPrivateAPI : public BrowserContextKeyedAPI,
|
||||
public ExtensionRegistryObserver {
|
||||
public:
|
||||
// Convenience method to get the StreamsPrivateAPI for a BrowserContext.
|
||||
static StreamsPrivateAPI* Get(content::BrowserContext* context);
|
||||
// Convenience method to get the CefStreamsPrivateAPI for a BrowserContext.
|
||||
static CefStreamsPrivateAPI* Get(content::BrowserContext* context);
|
||||
|
||||
explicit StreamsPrivateAPI(content::BrowserContext* context);
|
||||
~StreamsPrivateAPI() override;
|
||||
explicit CefStreamsPrivateAPI(content::BrowserContext* context);
|
||||
~CefStreamsPrivateAPI() override;
|
||||
|
||||
// Send the onExecuteMimeTypeHandler event to |extension_id|.
|
||||
// |tab_id| is used to determine the tabId where the document is being
|
||||
@@ -53,10 +53,11 @@ class StreamsPrivateAPI : public BrowserContextKeyedAPI,
|
||||
const base::Closure& callback);
|
||||
|
||||
// BrowserContextKeyedAPI implementation.
|
||||
static BrowserContextKeyedAPIFactory<StreamsPrivateAPI>* GetFactoryInstance();
|
||||
static BrowserContextKeyedAPIFactory<CefStreamsPrivateAPI>*
|
||||
GetFactoryInstance();
|
||||
|
||||
private:
|
||||
friend class BrowserContextKeyedAPIFactory<StreamsPrivateAPI>;
|
||||
friend class BrowserContextKeyedAPIFactory<CefStreamsPrivateAPI>;
|
||||
typedef std::map<std::string,
|
||||
std::map<GURL,
|
||||
linked_ptr<content::StreamHandle> > > StreamMap;
|
||||
@@ -68,7 +69,7 @@ class StreamsPrivateAPI : public BrowserContextKeyedAPI,
|
||||
|
||||
// BrowserContextKeyedAPI implementation.
|
||||
static const char* service_name() {
|
||||
return "StreamsPrivateAPI";
|
||||
return "CefStreamsPrivateAPI";
|
||||
}
|
||||
static const bool kServiceIsNULLWhileTesting = true;
|
||||
static const bool kServiceRedirectedInIncognito = true;
|
||||
@@ -80,17 +81,17 @@ class StreamsPrivateAPI : public BrowserContextKeyedAPI,
|
||||
ScopedObserver<ExtensionRegistry, ExtensionRegistryObserver>
|
||||
extension_registry_observer_;
|
||||
|
||||
base::WeakPtrFactory<StreamsPrivateAPI> weak_ptr_factory_;
|
||||
base::WeakPtrFactory<CefStreamsPrivateAPI> weak_ptr_factory_;
|
||||
|
||||
};
|
||||
|
||||
class StreamsPrivateAbortFunction : public UIThreadExtensionFunction {
|
||||
class CefStreamsPrivateAbortFunction : public UIThreadExtensionFunction {
|
||||
public:
|
||||
StreamsPrivateAbortFunction();
|
||||
CefStreamsPrivateAbortFunction();
|
||||
DECLARE_EXTENSION_FUNCTION("streamsPrivate.abort", STREAMSPRIVATE_ABORT)
|
||||
|
||||
protected:
|
||||
~StreamsPrivateAbortFunction() override {}
|
||||
~CefStreamsPrivateAbortFunction() override {}
|
||||
|
||||
// ExtensionFunction:
|
||||
ExtensionFunction::ResponseAction Run() override;
|
||||
@@ -101,6 +102,10 @@ class StreamsPrivateAbortFunction : public UIThreadExtensionFunction {
|
||||
std::string stream_url_;
|
||||
};
|
||||
|
||||
// For compatibility with generated_api_registration.cc.
|
||||
typedef CefStreamsPrivateAPI StreamsPrivateAPI;
|
||||
typedef CefStreamsPrivateAbortFunction StreamsPrivateAbortFunction;
|
||||
|
||||
} // namespace extensions
|
||||
|
||||
#endif // CEF_LIBCEF_BROWSER_EXTENSIONS_API_STREAMS_PRIVATE_STREAMS_PRIVATE_API_H_
|
||||
|
Reference in New Issue
Block a user