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

Unified Diff: chrome/browser/net/chrome_extensions_network_delegate.cc

Issue 2335133003: PlzNavigate: support the WebRequest API (Closed)
Patch Set: Rebase + addressed nit Created 4 years, 3 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: chrome/browser/net/chrome_extensions_network_delegate.cc
diff --git a/chrome/browser/net/chrome_extensions_network_delegate.cc b/chrome/browser/net/chrome_extensions_network_delegate.cc
index 502585cf85702d08e4beb93c5eae6995d59d80d6..3a4c50df976b096183b601b5e4972c471dce3c78 100644
--- a/chrome/browser/net/chrome_extensions_network_delegate.cc
+++ b/chrome/browser/net/chrome_extensions_network_delegate.cc
@@ -14,10 +14,12 @@
#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 "chrome/browser/renderer_host/chrome_navigation_ui_data.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_navigation_ui_data.h"
#include "extensions/browser/info_map.h"
#include "extensions/browser/process_manager.h"
#include "extensions/common/constants.h"
@@ -82,6 +84,19 @@ void ForwardRequestStatus(
}
}
+extensions::ExtensionNavigationUIData* GetExtensionNavigationUIData(
+ net::URLRequest* request) {
+ const content::ResourceRequestInfo* info =
+ content::ResourceRequestInfo::ForRequest(request);
+ if (!info)
+ return nullptr;
+ ChromeNavigationUIData* navigation_data =
+ static_cast<ChromeNavigationUIData*>(info->GetNavigationUIData());
+ if (!navigation_data)
+ return nullptr;
+ return navigation_data->GetExtensionNavigationUIData();
+}
+
class ChromeExtensionsNetworkDelegateImpl
: public ChromeExtensionsNetworkDelegate {
public:
@@ -176,7 +191,8 @@ int ChromeExtensionsNetworkDelegateImpl::OnBeforeURLRequest(
}
return ExtensionWebRequestEventRouter::GetInstance()->OnBeforeRequest(
- profile_, extension_info_map_.get(), request, callback, new_url);
+ profile_, extension_info_map_.get(),
+ GetExtensionNavigationUIData(request), request, callback, new_url);
}
int ChromeExtensionsNetworkDelegateImpl::OnBeforeStartTransaction(
@@ -184,14 +200,16 @@ int ChromeExtensionsNetworkDelegateImpl::OnBeforeStartTransaction(
const net::CompletionCallback& callback,
net::HttpRequestHeaders* headers) {
return ExtensionWebRequestEventRouter::GetInstance()->OnBeforeSendHeaders(
- profile_, extension_info_map_.get(), request, callback, headers);
+ profile_, extension_info_map_.get(),
+ GetExtensionNavigationUIData(request), request, callback, headers);
}
void ChromeExtensionsNetworkDelegateImpl::OnStartTransaction(
net::URLRequest* request,
const net::HttpRequestHeaders& headers) {
ExtensionWebRequestEventRouter::GetInstance()->OnSendHeaders(
- profile_, extension_info_map_.get(), request, headers);
+ profile_, extension_info_map_.get(),
+ GetExtensionNavigationUIData(request), request, headers);
}
int ChromeExtensionsNetworkDelegateImpl::OnHeadersReceived(
@@ -201,12 +219,9 @@ int ChromeExtensionsNetworkDelegateImpl::OnHeadersReceived(
scoped_refptr<net::HttpResponseHeaders>* override_response_headers,
GURL* allowed_unsafe_redirect_url) {
return ExtensionWebRequestEventRouter::GetInstance()->OnHeadersReceived(
- profile_,
- extension_info_map_.get(),
- request,
- callback,
- original_response_headers,
- override_response_headers,
+ profile_, extension_info_map_.get(),
+ GetExtensionNavigationUIData(request), request, callback,
+ original_response_headers, override_response_headers,
allowed_unsafe_redirect_url);
}
@@ -214,14 +229,16 @@ void ChromeExtensionsNetworkDelegateImpl::OnBeforeRedirect(
net::URLRequest* request,
const GURL& new_location) {
ExtensionWebRequestEventRouter::GetInstance()->OnBeforeRedirect(
- profile_, extension_info_map_.get(), request, new_location);
+ profile_, extension_info_map_.get(),
+ GetExtensionNavigationUIData(request), request, new_location);
}
void ChromeExtensionsNetworkDelegateImpl::OnResponseStarted(
net::URLRequest* request) {
ExtensionWebRequestEventRouter::GetInstance()->OnResponseStarted(
- profile_, extension_info_map_.get(), request);
+ profile_, extension_info_map_.get(),
+ GetExtensionNavigationUIData(request), request);
ForwardProxyErrors(request);
}
@@ -234,7 +251,8 @@ void ChromeExtensionsNetworkDelegateImpl::OnCompleted(
request->response_headers()->response_code());
if (!is_redirect) {
ExtensionWebRequestEventRouter::GetInstance()->OnCompleted(
- profile_, extension_info_map_.get(), request);
+ profile_, extension_info_map_.get(),
+ GetExtensionNavigationUIData(request), request);
}
return;
}
@@ -242,7 +260,8 @@ 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);
+ profile_, extension_info_map_.get(),
+ GetExtensionNavigationUIData(request), request, started);
return;
}
@@ -269,7 +288,8 @@ ChromeExtensionsNetworkDelegateImpl::OnAuthRequired(
const AuthCallback& callback,
net::AuthCredentials* credentials) {
return ExtensionWebRequestEventRouter::GetInstance()->OnAuthRequired(
- profile_, extension_info_map_.get(), request, auth_info, callback,
+ profile_, extension_info_map_.get(),
+ GetExtensionNavigationUIData(request), request, auth_info, callback,
credentials);
}
« no previous file with comments | « chrome/browser/chrome_content_browser_client.cc ('k') | chrome/browser/renderer_host/chrome_navigation_ui_data.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698