diff --git a/chrome/chrome_renderer.gypi b/chrome/chrome_renderer.gypi
index 270d68fe34f607..fb28f98fc24e17 100644
--- a/chrome/chrome_renderer.gypi
+++ b/chrome/chrome_renderer.gypi
@@ -149,7 +149,6 @@
'renderer/resources/extensions/chrome_setting.js',
'renderer/resources/extensions/content_setting.js',
'renderer/resources/extensions/declarative_content_custom_bindings.js',
- 'renderer/resources/extensions/declarative_webrequest_custom_bindings.js',
'renderer/resources/extensions/enterprise_platform_keys_custom_bindings.js',
'renderer/resources/extensions/extension_options.js',
'renderer/resources/extensions/feedback_private_custom_bindings.js',
diff --git a/chrome/common/extensions/docs/server2/api_models_test.py b/chrome/common/extensions/docs/server2/api_models_test.py
index fe61e50d06749e..f9c863e43401fa 100755
--- a/chrome/common/extensions/docs/server2/api_models_test.py
+++ b/chrome/common/extensions/docs/server2/api_models_test.py
@@ -39,8 +39,6 @@
'_manifest_features.json': '{}',
'_permission_features.json': '{}',
'alarms.idl': ReadFile(CHROME_API, 'alarms.idl'),
- 'declarative_web_request.json': ReadFile(
- CHROME_API, 'declarative_web_request.json'),
'input_ime.json': ReadFile(CHROME_API, 'input_ime.json'),
'page_action.json': ReadFile(CHROME_API, 'page_action.json'),
},
@@ -95,13 +93,6 @@ def get_model_name(api_name):
self.assertEqual('alarms', get_model_name('alarms'))
self.assertEqual('alarms', get_model_name('alarms.idl'))
self.assertEqual('alarms', get_model_name(CHROME_API + 'alarms.idl'))
- self.assertEqual('declarativeWebRequest',
- get_model_name('declarativeWebRequest'))
- self.assertEqual('declarativeWebRequest',
- get_model_name('declarative_web_request.json'))
- self.assertEqual('declarativeWebRequest',
- get_model_name(CHROME_API +
- 'declarative_web_request.json'))
self.assertEqual('input.ime', get_model_name('input.ime'))
self.assertEqual('input.ime', get_model_name('input_ime.json'))
self.assertEqual('input.ime',
@@ -112,6 +103,14 @@ def get_model_name(api_name):
'page_action.json'))
def testGetNonexistentModel(self):
+ self.assertRaises(FileNotFoundError,
+ self._api_models.GetModel('declarativeWebRequest').Get)
+ self.assertRaises(FileNotFoundError,
+ self._api_models.GetModel(
+ 'declarative_web_request.json').Get)
+ self.assertRaises(FileNotFoundError,
+ self._api_models.GetModel(
+ CHROME_API + 'declarative_web_request.json').Get)
self.assertRaises(FileNotFoundError,
self._api_models.GetModel('notfound').Get)
self.assertRaises(FileNotFoundError,
diff --git a/chrome/common/extensions/docs/server2/platform_bundle_test.py b/chrome/common/extensions/docs/server2/platform_bundle_test.py
index 6e1697448ead94..fefecf66172fc6 100755
--- a/chrome/common/extensions/docs/server2/platform_bundle_test.py
+++ b/chrome/common/extensions/docs/server2/platform_bundle_test.py
@@ -33,8 +33,6 @@
'_manifest_features.json': '{}',
'_permission_features.json': '{}',
'alarms.idl': ReadFile(CHROME_API, 'alarms.idl'),
- 'declarative_web_request.json': ReadFile(
- CHROME_API, 'declarative_web_request.json'),
'input_ime.json': ReadFile(CHROME_API, 'input_ime.json'),
'page_action.json': ReadFile(CHROME_API, 'page_action.json'),
},
diff --git a/chrome/common/extensions_api_resources.grd b/chrome/common/extensions_api_resources.grd
index 7604414c898351..7bf7de0bd249b1 100644
--- a/chrome/common/extensions_api_resources.grd
+++ b/chrome/common/extensions_api_resources.grd
@@ -13,7 +13,6 @@
-
diff --git a/chrome/renderer/extensions/chrome_extensions_dispatcher_delegate.cc b/chrome/renderer/extensions/chrome_extensions_dispatcher_delegate.cc
index b65b153945af6f..b408544199fb61 100644
--- a/chrome/renderer/extensions/chrome_extensions_dispatcher_delegate.cc
+++ b/chrome/renderer/extensions/chrome_extensions_dispatcher_delegate.cc
@@ -159,8 +159,6 @@ void ChromeExtensionsDispatcherDelegate::PopulateSourceMap(
IDR_BROWSER_ACTION_CUSTOM_BINDINGS_JS);
source_map->RegisterSource("declarativeContent",
IDR_DECLARATIVE_CONTENT_CUSTOM_BINDINGS_JS);
- source_map->RegisterSource("declarativeWebRequest",
- IDR_DECLARATIVE_WEBREQUEST_CUSTOM_BINDINGS_JS);
source_map->RegisterSource("desktopCapture",
IDR_DESKTOP_CAPTURE_CUSTOM_BINDINGS_JS);
source_map->RegisterSource("developerPrivate",
diff --git a/chrome/renderer/resources/renderer_resources.grd b/chrome/renderer/resources/renderer_resources.grd
index ff1397739255e6..91dcc38eaca89e 100644
--- a/chrome/renderer/resources/renderer_resources.grd
+++ b/chrome/renderer/resources/renderer_resources.grd
@@ -48,7 +48,6 @@
-
diff --git a/chrome/common/extensions/api/declarative_web_request.json b/extensions/common/api/declarative_web_request.json
similarity index 100%
rename from chrome/common/extensions/api/declarative_web_request.json
rename to extensions/common/api/declarative_web_request.json
diff --git a/extensions/extensions.gyp b/extensions/extensions.gyp
index 33da867db8d68c..6178f612ead54c 100644
--- a/extensions/extensions.gyp
+++ b/extensions/extensions.gyp
@@ -848,6 +848,7 @@
'renderer/resources/app_window_custom_bindings.js',
'renderer/resources/binding.js',
'renderer/resources/context_menus_custom_bindings.js',
+ 'renderer/resources/declarative_webrequest_custom_bindings.js',
'renderer/resources/entry_id_manager.js',
'renderer/resources/event.js',
'renderer/resources/extension.css',
diff --git a/extensions/extensions_resources.grd b/extensions/extensions_resources.grd
index de5d4b58730b89..f8b53a98f2f6de 100644
--- a/extensions/extensions_resources.grd
+++ b/extensions/extensions_resources.grd
@@ -9,6 +9,7 @@
+
diff --git a/extensions/renderer/BUILD.gn b/extensions/renderer/BUILD.gn
index 80ff8d220eca6e..a0092c1034992a 100644
--- a/extensions/renderer/BUILD.gn
+++ b/extensions/renderer/BUILD.gn
@@ -82,6 +82,7 @@ source_set("renderer") {
"resources/app_window_custom_bindings.js",
"resources/binding.js",
"resources/context_menus_custom_bindings.js",
+ "resources/declarative_webrequest_custom_bindings.js",
"resources/entry_id_manager.js",
"resources/event.js",
"resources/extension.css",
diff --git a/extensions/renderer/dispatcher.cc b/extensions/renderer/dispatcher.cc
index 913146ce30cd5a..278066c4813040 100644
--- a/extensions/renderer/dispatcher.cc
+++ b/extensions/renderer/dispatcher.cc
@@ -566,6 +566,9 @@ std::vector > Dispatcher::GetJsResources() {
std::make_pair("app.runtime", IDR_APP_RUNTIME_CUSTOM_BINDINGS_JS));
resources.push_back(
std::make_pair("app.window", IDR_APP_WINDOW_CUSTOM_BINDINGS_JS));
+ resources.push_back(
+ std::make_pair("declarativeWebRequest",
+ IDR_DECLARATIVE_WEBREQUEST_CUSTOM_BINDINGS_JS));
resources.push_back(
std::make_pair("contextMenus", IDR_CONTEXT_MENUS_CUSTOM_BINDINGS_JS));
resources.push_back(
diff --git a/chrome/renderer/resources/extensions/declarative_webrequest_custom_bindings.js b/extensions/renderer/resources/declarative_webrequest_custom_bindings.js
similarity index 100%
rename from chrome/renderer/resources/extensions/declarative_webrequest_custom_bindings.js
rename to extensions/renderer/resources/declarative_webrequest_custom_bindings.js
diff --git a/extensions/renderer/resources/extensions_renderer_resources.grd b/extensions/renderer/resources/extensions_renderer_resources.grd
index 5f8715d5b87060..fccb7af9b533ae 100644
--- a/extensions/renderer/resources/extensions_renderer_resources.grd
+++ b/extensions/renderer/resources/extensions_renderer_resources.grd
@@ -42,6 +42,7 @@
+