| 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/browser/extension_protocols.h" | 5 #include "extensions/browser/extension_protocols.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <algorithm> | 10 #include <algorithm> |
| (...skipping 18 matching lines...) Expand all Loading... |
| 29 #include "base/strings/string_util.h" | 29 #include "base/strings/string_util.h" |
| 30 #include "base/strings/stringprintf.h" | 30 #include "base/strings/stringprintf.h" |
| 31 #include "base/strings/utf_string_conversions.h" | 31 #include "base/strings/utf_string_conversions.h" |
| 32 #include "base/threading/sequenced_worker_pool.h" | 32 #include "base/threading/sequenced_worker_pool.h" |
| 33 #include "base/threading/thread_restrictions.h" | 33 #include "base/threading/thread_restrictions.h" |
| 34 #include "base/timer/elapsed_timer.h" | 34 #include "base/timer/elapsed_timer.h" |
| 35 #include "build/build_config.h" | 35 #include "build/build_config.h" |
| 36 #include "content/public/browser/browser_thread.h" | 36 #include "content/public/browser/browser_thread.h" |
| 37 #include "content/public/browser/resource_request_info.h" | 37 #include "content/public/browser/resource_request_info.h" |
| 38 #include "content/public/common/browser_side_navigation_policy.h" | 38 #include "content/public/common/browser_side_navigation_policy.h" |
| 39 #include "content/public/common/resource_type.h" |
| 39 #include "crypto/secure_hash.h" | 40 #include "crypto/secure_hash.h" |
| 40 #include "crypto/sha2.h" | 41 #include "crypto/sha2.h" |
| 41 #include "extensions/browser/content_verifier.h" | 42 #include "extensions/browser/content_verifier.h" |
| 42 #include "extensions/browser/content_verify_job.h" | 43 #include "extensions/browser/content_verify_job.h" |
| 43 #include "extensions/browser/extensions_browser_client.h" | 44 #include "extensions/browser/extensions_browser_client.h" |
| 44 #include "extensions/browser/info_map.h" | 45 #include "extensions/browser/info_map.h" |
| 45 #include "extensions/browser/url_request_util.h" | 46 #include "extensions/browser/url_request_util.h" |
| 46 #include "extensions/common/constants.h" | 47 #include "extensions/common/constants.h" |
| 47 #include "extensions/common/extension.h" | 48 #include "extensions/common/extension.h" |
| 48 #include "extensions/common/extension_resource.h" | 49 #include "extensions/common/extension_resource.h" |
| (...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 362 // check, since the renderer can lie about which extension has made the | 363 // check, since the renderer can lie about which extension has made the |
| 363 // request. | 364 // request. |
| 364 if (extension_info_map->process_map().Contains( | 365 if (extension_info_map->process_map().Contains( |
| 365 request->url().host(), info->GetChildID())) { | 366 request->url().host(), info->GetChildID())) { |
| 366 return true; | 367 return true; |
| 367 } | 368 } |
| 368 | 369 |
| 369 // PlzNavigate: frame navigations to extensions have already been checked in | 370 // PlzNavigate: frame navigations to extensions have already been checked in |
| 370 // the ExtensionNavigationThrottle. | 371 // the ExtensionNavigationThrottle. |
| 371 if (info->GetChildID() == -1 && | 372 if (info->GetChildID() == -1 && |
| 372 info->GetResourceType() == content::RESOURCE_TYPE_MAIN_FRAME && | 373 content::IsResourceTypeFrame(info->GetResourceType()) && |
| 373 content::IsBrowserSideNavigationEnabled()) { | 374 content::IsBrowserSideNavigationEnabled()) { |
| 374 return true; | 375 return true; |
| 375 } | 376 } |
| 376 | 377 |
| 377 // Allow the extension module embedder to grant permission for loads. | 378 // Allow the extension module embedder to grant permission for loads. |
| 378 if (ExtensionsBrowserClient::Get()->AllowCrossRendererResourceLoad( | 379 if (ExtensionsBrowserClient::Get()->AllowCrossRendererResourceLoad( |
| 379 request, is_incognito, extension, extension_info_map)) { | 380 request, is_incognito, extension, extension_info_map)) { |
| 380 return true; | 381 return true; |
| 381 } | 382 } |
| 382 | 383 |
| (...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 583 } | 584 } |
| 584 | 585 |
| 585 std::unique_ptr<net::URLRequestJobFactory::ProtocolHandler> | 586 std::unique_ptr<net::URLRequestJobFactory::ProtocolHandler> |
| 586 CreateExtensionProtocolHandler(bool is_incognito, | 587 CreateExtensionProtocolHandler(bool is_incognito, |
| 587 extensions::InfoMap* extension_info_map) { | 588 extensions::InfoMap* extension_info_map) { |
| 588 return base::MakeUnique<ExtensionProtocolHandler>(is_incognito, | 589 return base::MakeUnique<ExtensionProtocolHandler>(is_incognito, |
| 589 extension_info_map); | 590 extension_info_map); |
| 590 } | 591 } |
| 591 | 592 |
| 592 } // namespace extensions | 593 } // namespace extensions |
| OLD | NEW |