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

Unified Diff: extensions/browser/extension_network_delegate.cc

Issue 615583003: Introduce NetworkDelegate's implementation in extensions. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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/extension_network_delegate.cc
diff --git a/chrome/browser/net/chrome_extensions_network_delegate.cc b/extensions/browser/extension_network_delegate.cc
similarity index 23%
copy from chrome/browser/net/chrome_extensions_network_delegate.cc
copy to extensions/browser/extension_network_delegate.cc
index 3a0a123ee8f055252dceb61bb984b8e088110c25..50516df7efd0a250c4c37d1a500d9378139a1687 100644
--- a/chrome/browser/net/chrome_extensions_network_delegate.cc
+++ b/extensions/browser/extension_network_delegate.cc
@@ -2,188 +2,65 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "chrome/browser/net/chrome_extensions_network_delegate.h"
+#include "extensions/browser/extension_network_delegate.h"
-#include "net/base/net_errors.h"
-
-#if defined(ENABLE_EXTENSIONS)
-#include "chrome/browser/browser_process.h"
-#include "chrome/browser/extensions/api/proxy/proxy_api.h"
-#include "chrome/browser/extensions/event_router_forwarder.h"
-#include "chrome/browser/profiles/profile_manager.h"
-#include "content/public/browser/browser_thread.h"
#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/resource_request_info.h"
#include "extensions/browser/api/web_request/web_request_api.h"
#include "extensions/browser/extension_system.h"
-#include "extensions/browser/info_map.h"
+#include "extensions/browser/extensions_browser_client.h"
#include "extensions/browser/process_manager.h"
#include "net/url_request/url_request.h"
-using content::BrowserThread;
-using content::ResourceRequestInfo;
+namespace extensions {
namespace {
-
-enum RequestStatus { REQUEST_STARTED, REQUEST_DONE };
-
-// Notifies the extensions::ProcessManager that a request has started or stopped
-// for a particular RenderFrame.
-void NotifyEPMRequestStatus(RequestStatus status,
- void* profile_id,
- int process_id,
- int render_frame_id) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
- Profile* profile = reinterpret_cast<Profile*>(profile_id);
- if (!g_browser_process->profile_manager()->IsValidProfile(profile))
- return;
-
- extensions::ProcessManager* process_manager =
- extensions::ExtensionSystem::Get(profile)->process_manager();
- // This may be NULL in unit tests.
- if (!process_manager)
- return;
-
- // Will be NULL if the request was not issued on behalf of a renderer (e.g. a
- // system-level request).
- content::RenderFrameHost* render_frame_host =
- content::RenderFrameHost::FromID(process_id, render_frame_id);
- if (render_frame_host) {
- if (status == REQUEST_STARTED) {
- process_manager->OnNetworkRequestStarted(render_frame_host);
- } else if (status == REQUEST_DONE) {
- process_manager->OnNetworkRequestDone(render_frame_host);
- } else {
- NOTREACHED();
- }
- }
-}
-
-void ForwardRequestStatus(
- RequestStatus status, net::URLRequest* request, void* profile_id) {
- const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request);
- if (!info)
- return;
-
- if (status == REQUEST_STARTED && request->url_chain().size() > 1) {
- // It's a redirect, this request has already been counted.
- return;
- }
-
- int process_id, render_frame_id;
- if (info->GetAssociatedRenderFrame(&process_id, &render_frame_id)) {
- BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
- base::Bind(&NotifyEPMRequestStatus,
- status, profile_id, process_id, render_frame_id));
- }
-}
-
-class ChromeExtensionsNetworkDelegateImpl
- : public ChromeExtensionsNetworkDelegate {
- public:
- explicit ChromeExtensionsNetworkDelegateImpl(
- extensions::EventRouterForwarder* event_router);
- virtual ~ChromeExtensionsNetworkDelegateImpl();
-
- private:
- // ChromeExtensionsNetworkDelegate implementation.
- virtual void ForwardProxyErrors(net::URLRequest* request) OVERRIDE;
- virtual void ForwardStartRequestStatus(net::URLRequest* request) OVERRIDE;
- virtual void ForwardDoneRequestStatus(net::URLRequest* request) OVERRIDE;
- virtual int OnBeforeURLRequest(net::URLRequest* request,
- const net::CompletionCallback& callback,
- GURL* new_url) OVERRIDE;
- virtual int OnBeforeSendHeaders(net::URLRequest* request,
- const net::CompletionCallback& callback,
- net::HttpRequestHeaders* headers) OVERRIDE;
- virtual void OnSendHeaders(net::URLRequest* request,
- const net::HttpRequestHeaders& headers) OVERRIDE;
- virtual int OnHeadersReceived(
- net::URLRequest* request,
- const net::CompletionCallback& callback,
- const net::HttpResponseHeaders* original_response_headers,
- scoped_refptr<net::HttpResponseHeaders>* override_response_headers,
- GURL* allowed_unsafe_redirect_url) OVERRIDE;
- virtual void OnBeforeRedirect(net::URLRequest* request,
- const GURL& new_location) OVERRIDE;
- virtual void OnResponseStarted(net::URLRequest* request) OVERRIDE;
- virtual void OnCompleted(net::URLRequest* request, bool started) OVERRIDE;
- virtual void OnURLRequestDestroyed(net::URLRequest* request) OVERRIDE;
- virtual void OnPACScriptError(int line_number,
- const base::string16& error) OVERRIDE;
- virtual net::NetworkDelegate::AuthRequiredResponse OnAuthRequired(
- net::URLRequest* request,
- const net::AuthChallengeInfo& auth_info,
- const AuthCallback& callback,
- net::AuthCredentials* credentials) OVERRIDE;
-
- scoped_refptr<extensions::EventRouterForwarder> event_router_;
-
- DISALLOW_COPY_AND_ASSIGN(ChromeExtensionsNetworkDelegateImpl);
-};
-
-ChromeExtensionsNetworkDelegateImpl::ChromeExtensionsNetworkDelegateImpl(
- extensions::EventRouterForwarder* event_router) {
- DCHECK(event_router);
- event_router_ = event_router;
+bool g_accept_all_cookies = true;
}
-ChromeExtensionsNetworkDelegateImpl::~ChromeExtensionsNetworkDelegateImpl() {}
-
-void ChromeExtensionsNetworkDelegateImpl::ForwardProxyErrors(
- net::URLRequest* request) {
- if (request->status().status() == net::URLRequestStatus::FAILED) {
- switch (request->status().error()) {
- case net::ERR_PROXY_AUTH_UNSUPPORTED:
- case net::ERR_PROXY_CONNECTION_FAILED:
- case net::ERR_TUNNEL_CONNECTION_FAILED:
- extensions::ProxyEventRouter::GetInstance()->OnProxyError(
- event_router_.get(), profile_, request->status().error());
- }
- }
+ExtensionNetworkDelegate::ExtensionNetworkDelegate(
+ void* browser_context, InfoMap* extension_info_map) {
+ browser_context_ = browser_context;
+ extension_info_map_ = extension_info_map;
}
-void ChromeExtensionsNetworkDelegateImpl::ForwardStartRequestStatus(
- net::URLRequest* request) {
- ForwardRequestStatus(REQUEST_STARTED, request, profile_);
-}
+ExtensionNetworkDelegate::~ExtensionNetworkDelegate() {}
-void ChromeExtensionsNetworkDelegateImpl::ForwardDoneRequestStatus(
- net::URLRequest* request) {
- ForwardRequestStatus(REQUEST_DONE, request, profile_);
+void ExtensionNetworkDelegate::SetAcceptAllCookies(bool accept) {
+ g_accept_all_cookies = accept;
}
-int ChromeExtensionsNetworkDelegateImpl::OnBeforeURLRequest(
+int ExtensionNetworkDelegate::OnBeforeURLRequest(
net::URLRequest* request,
const net::CompletionCallback& callback,
GURL* new_url) {
return ExtensionWebRequestEventRouter::GetInstance()->OnBeforeRequest(
- profile_, extension_info_map_.get(), request, callback, new_url);
+ browser_context_, extension_info_map_.get(), request, callback, new_url);
}
-int ChromeExtensionsNetworkDelegateImpl::OnBeforeSendHeaders(
+int ExtensionNetworkDelegate::OnBeforeSendHeaders(
net::URLRequest* request,
const net::CompletionCallback& callback,
net::HttpRequestHeaders* headers) {
return ExtensionWebRequestEventRouter::GetInstance()->OnBeforeSendHeaders(
- profile_, extension_info_map_.get(), request, callback, headers);
+ browser_context_, extension_info_map_.get(), request, callback, headers);
}
-void ChromeExtensionsNetworkDelegateImpl::OnSendHeaders(
+void ExtensionNetworkDelegate::OnSendHeaders(
net::URLRequest* request,
const net::HttpRequestHeaders& headers) {
ExtensionWebRequestEventRouter::GetInstance()->OnSendHeaders(
- profile_, extension_info_map_.get(), request, headers);
+ browser_context_, extension_info_map_.get(), request, headers);
}
-int ChromeExtensionsNetworkDelegateImpl::OnHeadersReceived(
+int ExtensionNetworkDelegate::OnHeadersReceived(
net::URLRequest* request,
const net::CompletionCallback& callback,
const net::HttpResponseHeaders* original_response_headers,
scoped_refptr<net::HttpResponseHeaders>* override_response_headers,
GURL* allowed_unsafe_redirect_url) {
return ExtensionWebRequestEventRouter::GetInstance()->OnHeadersReceived(
- profile_,
+ browser_context_,
extension_info_map_.get(),
request,
callback,
@@ -192,22 +69,21 @@ int ChromeExtensionsNetworkDelegateImpl::OnHeadersReceived(
allowed_unsafe_redirect_url);
}
-void ChromeExtensionsNetworkDelegateImpl::OnBeforeRedirect(
+void ExtensionNetworkDelegate::OnBeforeRedirect(
net::URLRequest* request,
const GURL& new_location) {
ExtensionWebRequestEventRouter::GetInstance()->OnBeforeRedirect(
- profile_, extension_info_map_.get(), request, new_location);
+ browser_context_, extension_info_map_.get(), request, new_location);
}
-void ChromeExtensionsNetworkDelegateImpl::OnResponseStarted(
+void ExtensionNetworkDelegate::OnResponseStarted(
net::URLRequest* request) {
ExtensionWebRequestEventRouter::GetInstance()->OnResponseStarted(
- profile_, extension_info_map_.get(), request);
- ForwardProxyErrors(request);
+ browser_context_, extension_info_map_.get(), request);
}
-void ChromeExtensionsNetworkDelegateImpl::OnCompleted(
+void ExtensionNetworkDelegate::OnCompleted(
net::URLRequest* request,
bool started) {
if (request->status().status() == net::URLRequestStatus::SUCCESS) {
@@ -216,7 +92,7 @@ void ChromeExtensionsNetworkDelegateImpl::OnCompleted(
request->response_headers()->response_code());
if (!is_redirect) {
ExtensionWebRequestEventRouter::GetInstance()->OnCompleted(
- profile_, extension_info_map_.get(), request);
+ browser_context_, extension_info_map_.get(), request);
}
return;
}
@@ -224,133 +100,33 @@ void ChromeExtensionsNetworkDelegateImpl::OnCompleted(
if (request->status().status() == net::URLRequestStatus::FAILED ||
request->status().status() == net::URLRequestStatus::CANCELED) {
ExtensionWebRequestEventRouter::GetInstance()->OnErrorOccurred(
- profile_, extension_info_map_.get(), request, started);
+ browser_context_, extension_info_map_.get(), request, started);
return;
}
NOTREACHED();
}
-void ChromeExtensionsNetworkDelegateImpl::OnURLRequestDestroyed(
+void ExtensionNetworkDelegate::OnURLRequestDestroyed(
net::URLRequest* request) {
ExtensionWebRequestEventRouter::GetInstance()->OnURLRequestDestroyed(
- profile_, request);
+ browser_context_, request);
}
-void ChromeExtensionsNetworkDelegateImpl::OnPACScriptError(
+void ExtensionNetworkDelegate::OnPACScriptError(
int line_number,
const base::string16& error) {
- extensions::ProxyEventRouter::GetInstance()->OnPACScriptError(
- event_router_.get(), profile_, line_number, error);
}
net::NetworkDelegate::AuthRequiredResponse
-ChromeExtensionsNetworkDelegateImpl::OnAuthRequired(
+ExtensionNetworkDelegate::OnAuthRequired(
net::URLRequest* request,
const net::AuthChallengeInfo& auth_info,
const AuthCallback& callback,
net::AuthCredentials* credentials) {
return ExtensionWebRequestEventRouter::GetInstance()->OnAuthRequired(
- profile_, extension_info_map_.get(), request, auth_info, callback,
+ browser_context_, extension_info_map_.get(), request, auth_info, callback,
credentials);
}
-} // namespace
-
-#endif // defined(ENABLE_EXTENSIONS)
-
-// static
-ChromeExtensionsNetworkDelegate* ChromeExtensionsNetworkDelegate::Create(
- extensions::EventRouterForwarder* event_router) {
-#if defined(ENABLE_EXTENSIONS)
- return new ChromeExtensionsNetworkDelegateImpl(event_router);
-#else
- return new ChromeExtensionsNetworkDelegate();
-#endif
-}
-
-ChromeExtensionsNetworkDelegate::ChromeExtensionsNetworkDelegate()
- : profile_(NULL) {
-}
-
-ChromeExtensionsNetworkDelegate::~ChromeExtensionsNetworkDelegate() {}
-
-void ChromeExtensionsNetworkDelegate::set_extension_info_map(
- extensions::InfoMap* extension_info_map) {
-#if defined(ENABLE_EXTENSIONS)
- extension_info_map_ = extension_info_map;
-#endif
-}
-
-void ChromeExtensionsNetworkDelegate::ForwardProxyErrors(
- net::URLRequest* request) {
-}
-
-void ChromeExtensionsNetworkDelegate::ForwardStartRequestStatus(
- net::URLRequest* request) {
-}
-
-void ChromeExtensionsNetworkDelegate::ForwardDoneRequestStatus(
- net::URLRequest* request) {
-}
-
-int ChromeExtensionsNetworkDelegate::OnBeforeURLRequest(
- net::URLRequest* request,
- const net::CompletionCallback& callback,
- GURL* new_url) {
- return net::OK;
-}
-
-int ChromeExtensionsNetworkDelegate::OnBeforeSendHeaders(
- net::URLRequest* request,
- const net::CompletionCallback& callback,
- net::HttpRequestHeaders* headers) {
- return net::OK;
-}
-
-void ChromeExtensionsNetworkDelegate::OnSendHeaders(
- net::URLRequest* request,
- const net::HttpRequestHeaders& headers) {
-}
-
-int ChromeExtensionsNetworkDelegate::OnHeadersReceived(
- net::URLRequest* request,
- const net::CompletionCallback& callback,
- const net::HttpResponseHeaders* original_response_headers,
- scoped_refptr<net::HttpResponseHeaders>* override_response_headers,
- GURL* allowed_unsafe_redirect_url) {
- return net::OK;
-}
-
-void ChromeExtensionsNetworkDelegate::OnBeforeRedirect(
- net::URLRequest* request,
- const GURL& new_location) {
-}
-
-
-void ChromeExtensionsNetworkDelegate::OnResponseStarted(
- net::URLRequest* request) {
-}
-
-void ChromeExtensionsNetworkDelegate::OnCompleted(
- net::URLRequest* request,
- bool started) {
-}
-
-void ChromeExtensionsNetworkDelegate::OnURLRequestDestroyed(
- net::URLRequest* request) {
-}
-
-void ChromeExtensionsNetworkDelegate::OnPACScriptError(
- int line_number,
- const base::string16& error) {
-}
-
-net::NetworkDelegate::AuthRequiredResponse
-ChromeExtensionsNetworkDelegate::OnAuthRequired(
- net::URLRequest* request,
- const net::AuthChallengeInfo& auth_info,
- const AuthCallback& callback,
- net::AuthCredentials* credentials) {
- return net::NetworkDelegate::AUTH_REQUIRED_RESPONSE_NO_ACTION;
-}
+} // namespace extensions
« no previous file with comments | « extensions/browser/extension_network_delegate.h ('k') | extensions/browser/extension_url_request_context_getter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698