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

Unified Diff: extensions/browser/api/web_request/web_request_api.cc

Issue 2700553002: Introduce WebRequestResourceType. (Closed)
Patch Set: Make compiler happy; make type<->string mapping self-checking. Created 3 years, 10 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/web_request/web_request_api.cc
diff --git a/extensions/browser/api/web_request/web_request_api.cc b/extensions/browser/api/web_request/web_request_api.cc
index ebe0c124f60d94d265035f5025fc78b9bed2f52f..e5cb4cbf13e047581194e448c1cd94eb9c1ab456 100644
--- a/extensions/browser/api/web_request/web_request_api.cc
+++ b/extensions/browser/api/web_request/web_request_api.cc
@@ -29,6 +29,7 @@
#include "content/public/browser/user_metrics.h"
#include "content/public/common/browser_side_navigation_policy.h"
#include "content/public/common/child_process_host.h"
+#include "content/public/common/resource_type.h"
#include "extensions/browser/api/activity_log/web_request_constants.h"
#include "extensions/browser/api/declarative/rules_registry_service.h"
#include "extensions/browser/api/declarative_webrequest/request_stage.h"
@@ -39,6 +40,7 @@
#include "extensions/browser/api/web_request/web_request_api_helpers.h"
#include "extensions/browser/api/web_request/web_request_event_details.h"
#include "extensions/browser/api/web_request/web_request_event_router_delegate.h"
+#include "extensions/browser/api/web_request/web_request_resource_type.h"
#include "extensions/browser/api/web_request/web_request_time_tracker.h"
#include "extensions/browser/api_activity_monitor.h"
#include "extensions/browser/event_router.h"
@@ -509,8 +511,9 @@ bool ExtensionWebRequestEventRouter::RequestFilter::InitFromValue(
return false;
for (size_t i = 0; i < types_value->GetSize(); ++i) {
std::string type_str;
+ types.push_back(WebRequestResourceType::OTHER);
if (!types_value->GetString(i, &type_str) ||
- !helpers::ParseResourceType(type_str, &types)) {
+ !ParseWebRequestResourceType(type_str, &types.back())) {
return false;
}
}
@@ -1333,10 +1336,7 @@ void ExtensionWebRequestEventRouter::AddCallbackForPageLoad(
bool ExtensionWebRequestEventRouter::IsPageLoad(
const net::URLRequest* request) const {
const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request);
- if (!info)
- return false;
-
- return info->GetResourceType() == content::RESOURCE_TYPE_MAIN_FRAME;
+ return info && info->GetResourceType() == content::RESOURCE_TYPE_MAIN_FRAME;
}
void ExtensionWebRequestEventRouter::NotifyPageLoad() {
@@ -1380,7 +1380,7 @@ void ExtensionWebRequestEventRouter::GetMatchingListenersImpl(
const GURL& url,
int render_process_host_id,
int routing_id,
- content::ResourceType resource_type,
+ WebRequestResourceType resource_type,
bool is_async_request,
bool is_request_from_extension,
int* extra_info_spec,
@@ -1452,7 +1452,7 @@ void ExtensionWebRequestEventRouter::GetMatchingListenersImpl(
continue;
}
- const std::vector<content::ResourceType>& types = listener->filter.types;
+ const std::vector<WebRequestResourceType>& types = listener->filter.types;
if (!types.empty() &&
std::find(types.begin(), types.end(), resource_type) == types.end()) {
continue;
@@ -1486,7 +1486,7 @@ void ExtensionWebRequestEventRouter::GetMatchingListenersImpl(
// http://crbug.com/105656
bool synchronous_xhr_from_extension =
!is_async_request && is_request_from_extension &&
- resource_type == content::RESOURCE_TYPE_XHR;
+ resource_type == WebRequestResourceType::XHR;
// Only send webRequest events for URLs the extension has access to.
if (blocking_listener && synchronous_xhr_from_extension)
@@ -1512,7 +1512,7 @@ ExtensionWebRequestEventRouter::GetMatchingListeners(
const GURL& url = request->url();
int render_process_host_id = content::ChildProcessHost::kInvalidUniqueID;
int routing_id = MSG_ROUTING_NONE;
- content::ResourceType resource_type = content::RESOURCE_TYPE_LAST_TYPE;
+ auto resource_type = GetWebRequestResourceType(request);
// We are conservative here and assume requests are asynchronous in case
// we don't have an info object. We don't want to risk a deadlock.
bool is_async_request = false;
@@ -1522,8 +1522,6 @@ ExtensionWebRequestEventRouter::GetMatchingListeners(
const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request);
if (info) {
is_async_request = info->IsAsync();
- if (helpers::IsRelevantResourceType(info->GetResourceType()))
- resource_type = info->GetResourceType();
render_process_host_id = info->GetChildID();
routing_id = info->GetRouteID();
}

Powered by Google App Engine
This is Rietveld 408576698