Index: extensions/browser/api/web_request/web_request_resource_type.h |
diff --git a/extensions/browser/api/web_request/web_request_resource_type.h b/extensions/browser/api/web_request/web_request_resource_type.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..77553caf4219de6dfad94bad734a8ab6aeb171f9 |
--- /dev/null |
+++ b/extensions/browser/api/web_request/web_request_resource_type.h |
@@ -0,0 +1,54 @@ |
+// Copyright 2017 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef EXTENSIONS_BROWSER_API_WEB_REQUEST_WEB_REQUEST_RESOURCE_TYPE_H_ |
+#define EXTENSIONS_BROWSER_API_WEB_REQUEST_WEB_REQUEST_RESOURCE_TYPE_H_ |
+ |
+#include "content/public/common/resource_type.h" |
+ |
+namespace extensions { |
+ |
+// Enumerates all resource/request types that WebRequest API cares about. |
+enum class WebRequestResourceType { |
+ // Below are content::ResourceType values. Note: Each content::RESOURCE_TYPE_* |
+ // is typed explicitly in order to catch if some of those values get deleted. |
+ MAIN_FRAME = content::RESOURCE_TYPE_MAIN_FRAME, |
+ SUB_FRAME = content::RESOURCE_TYPE_SUB_FRAME, |
+ STYLESHEET = content::RESOURCE_TYPE_STYLESHEET, |
+ SCRIPT = content::RESOURCE_TYPE_SCRIPT, |
+ IMAGE = content::RESOURCE_TYPE_IMAGE, |
+ FONT_RESOURCE = content::RESOURCE_TYPE_FONT_RESOURCE, |
+ SUB_RESOURCE = content::RESOURCE_TYPE_SUB_RESOURCE, |
+ OBJECT = content::RESOURCE_TYPE_OBJECT, |
+ MEDIA = content::RESOURCE_TYPE_MEDIA, |
+ WORKER = content::RESOURCE_TYPE_WORKER, |
+ SHARED_WORKER = content::RESOURCE_TYPE_SHARED_WORKER, |
+ PREFETCH = content::RESOURCE_TYPE_PREFETCH, |
+ FAVICON = content::RESOURCE_TYPE_FAVICON, |
+ XHR = content::RESOURCE_TYPE_XHR, |
+ PING = content::RESOURCE_TYPE_PING, |
+ SERVICE_WORKER = content::RESOURCE_TYPE_SERVICE_WORKER, |
+ CSP_REPORT = content::RESOURCE_TYPE_CSP_REPORT, |
+ PLUGIN_RESOURCE = content::RESOURCE_TYPE_PLUGIN_RESOURCE, |
+ |
+ // Types of requests not in content::ResourceType. |
+ WEBSOCKET, |
Devlin
2017/02/16 15:13:05
nit: Why WEBSOCKET instead of WEB_SOCKET? (If thi
pkalinnikov
2017/02/16 15:52:45
Changed to WEB_SOCKET.
|
+ |
+ LAST_TYPE, |
+}; |
+ |
+static_assert(content::RESOURCE_TYPE_LAST_TYPE == |
+ content::RESOURCE_TYPE_PLUGIN_RESOURCE + 1, |
+ "content::ResourceType has been modified."); |
+ |
+inline WebRequestResourceType ToWebRequestResourceType( |
Devlin
2017/02/16 15:13:05
When we begin intercepting WebSocket requests, thi
pkalinnikov
2017/02/16 15:52:45
I had been thinking about this as well, but I had
|
+ content::ResourceType type) { |
+ return type == content::RESOURCE_TYPE_LAST_TYPE |
+ ? WebRequestResourceType::LAST_TYPE |
+ : static_cast<WebRequestResourceType>(type); |
+} |
+ |
+} // namespace extensions |
+ |
+#endif // EXTENSIONS_BROWSER_API_WEB_REQUEST_WEB_REQUEST_RESOURCE_TYPE_H_ |