| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "extensions/renderer/dispatcher.h" | 5 #include "extensions/renderer/dispatcher.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 1327 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1338 break; | 1338 break; |
| 1339 | 1339 |
| 1340 case Feature::BLESSED_EXTENSION_CONTEXT: | 1340 case Feature::BLESSED_EXTENSION_CONTEXT: |
| 1341 case Feature::UNBLESSED_EXTENSION_CONTEXT: | 1341 case Feature::UNBLESSED_EXTENSION_CONTEXT: |
| 1342 case Feature::CONTENT_SCRIPT_CONTEXT: | 1342 case Feature::CONTENT_SCRIPT_CONTEXT: |
| 1343 case Feature::WEBUI_CONTEXT: { | 1343 case Feature::WEBUI_CONTEXT: { |
| 1344 // Extension context; iterate through all the APIs and bind the available | 1344 // Extension context; iterate through all the APIs and bind the available |
| 1345 // ones. | 1345 // ones. |
| 1346 const FeatureProvider* api_feature_provider = | 1346 const FeatureProvider* api_feature_provider = |
| 1347 FeatureProvider::GetAPIFeatures(); | 1347 FeatureProvider::GetAPIFeatures(); |
| 1348 const std::vector<std::string>& apis = | 1348 for (const auto& map_entry : api_feature_provider->GetAllFeatures()) { |
| 1349 api_feature_provider->GetAllFeatureNames(); | |
| 1350 for (const std::string& api_name : apis) { | |
| 1351 Feature* feature = api_feature_provider->GetFeature(api_name); | |
| 1352 DCHECK(feature); | |
| 1353 | |
| 1354 // Internal APIs are included via require(api_name) from internal code | 1349 // Internal APIs are included via require(api_name) from internal code |
| 1355 // rather than chrome[api_name]. | 1350 // rather than chrome[api_name]. |
| 1356 if (feature->IsInternal()) | 1351 if (map_entry.second->IsInternal()) |
| 1357 continue; | 1352 continue; |
| 1358 | 1353 |
| 1359 // If this API has a parent feature (and isn't marked 'noparent'), | 1354 // If this API has a parent feature (and isn't marked 'noparent'), |
| 1360 // then this must be a function or event, so we should not register. | 1355 // then this must be a function or event, so we should not register. |
| 1361 if (api_feature_provider->GetParent(feature) != NULL) | 1356 if (api_feature_provider->GetParent(map_entry.second.get()) != nullptr) |
| 1362 continue; | 1357 continue; |
| 1363 | 1358 |
| 1364 // Skip chrome.test if this isn't a test. | 1359 // Skip chrome.test if this isn't a test. |
| 1365 if (api_name == "test" && | 1360 if (map_entry.first == "test" && |
| 1366 !base::CommandLine::ForCurrentProcess()->HasSwitch( | 1361 !base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 1367 ::switches::kTestType)) { | 1362 ::switches::kTestType)) { |
| 1368 continue; | 1363 continue; |
| 1369 } | 1364 } |
| 1370 | 1365 |
| 1371 if (context->IsAnyFeatureAvailableToContext(*feature)) | 1366 if (context->IsAnyFeatureAvailableToContext(*map_entry.second.get())) |
| 1372 RegisterBinding(api_name, context); | 1367 RegisterBinding(map_entry.first, context); |
| 1373 } | 1368 } |
| 1374 break; | 1369 break; |
| 1375 } | 1370 } |
| 1376 case Feature::SERVICE_WORKER_CONTEXT: | 1371 case Feature::SERVICE_WORKER_CONTEXT: |
| 1377 // Handled in DidInitializeServiceWorkerContextOnWorkerThread(). | 1372 // Handled in DidInitializeServiceWorkerContextOnWorkerThread(). |
| 1378 NOTREACHED(); | 1373 NOTREACHED(); |
| 1379 break; | 1374 break; |
| 1380 } | 1375 } |
| 1381 } | 1376 } |
| 1382 | 1377 |
| (...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1612 // The "guestViewDeny" module must always be loaded last. It registers | 1607 // The "guestViewDeny" module must always be loaded last. It registers |
| 1613 // error-providing custom elements for the GuestView types that are not | 1608 // error-providing custom elements for the GuestView types that are not |
| 1614 // available, and thus all of those types must have been checked and loaded | 1609 // available, and thus all of those types must have been checked and loaded |
| 1615 // (or not loaded) beforehand. | 1610 // (or not loaded) beforehand. |
| 1616 if (context_type == Feature::BLESSED_EXTENSION_CONTEXT) { | 1611 if (context_type == Feature::BLESSED_EXTENSION_CONTEXT) { |
| 1617 module_system->Require("guestViewDeny"); | 1612 module_system->Require("guestViewDeny"); |
| 1618 } | 1613 } |
| 1619 } | 1614 } |
| 1620 | 1615 |
| 1621 } // namespace extensions | 1616 } // namespace extensions |
| OLD | NEW |