Depend directly on chrome targets and unfork code (issue #1947)

This commit is contained in:
Marshall Greenblatt
2016-07-13 21:35:07 -04:00
parent 62d177455b
commit 3cc539b506
71 changed files with 811 additions and 1860 deletions

View File

@@ -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();
}

View File

@@ -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_