| Index: content/renderer/render_frame_impl.cc
 | 
| diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
 | 
| index 5aead0f6ac08e24b1cd4912a879c6a01cc829075..f2a8396aa1eba94e0134f05c61543777a6573448 100644
 | 
| --- a/content/renderer/render_frame_impl.cc
 | 
| +++ b/content/renderer/render_frame_impl.cc
 | 
| @@ -16,6 +16,7 @@
 | 
|  #include "base/debug/asan_invalid_access.h"
 | 
|  #include "base/debug/crash_logging.h"
 | 
|  #include "base/debug/dump_without_crashing.h"
 | 
| +#include "base/feature_list.h"
 | 
|  #include "base/files/file.h"
 | 
|  #include "base/i18n/char_iterator.h"
 | 
|  #include "base/logging.h"
 | 
| @@ -69,6 +70,7 @@
 | 
|  #include "content/common/site_isolation_policy.h"
 | 
|  #include "content/common/swapped_out_messages.h"
 | 
|  #include "content/common/view_messages.h"
 | 
| +#include "content/common/worker_url_loader_factory_provider.mojom.h"
 | 
|  #include "content/public/common/appcache_info.h"
 | 
|  #include "content/public/common/associated_interface_provider.h"
 | 
|  #include "content/public/common/bindings_policy.h"
 | 
| @@ -142,6 +144,7 @@
 | 
|  #include "content/renderer/renderer_webcolorchooser_impl.h"
 | 
|  #include "content/renderer/savable_resources.h"
 | 
|  #include "content/renderer/screen_orientation/screen_orientation_dispatcher.h"
 | 
| +#include "content/renderer/service_worker/worker_fetch_context_impl.h"
 | 
|  #include "content/renderer/shared_worker/shared_worker_repository.h"
 | 
|  #include "content/renderer/shared_worker/websharedworker_proxy.h"
 | 
|  #include "content/renderer/skia_benchmarking_extension.h"
 | 
| @@ -179,6 +182,7 @@
 | 
|  #include "services/ui/public/cpp/gpu/context_provider_command_buffer.h"
 | 
|  #include "storage/common/data_element.h"
 | 
|  #include "third_party/WebKit/public/platform/FilePathConversion.h"
 | 
| +#include "third_party/WebKit/public/platform/InterfaceProvider.h"
 | 
|  #include "third_party/WebKit/public/platform/URLConversion.h"
 | 
|  #include "third_party/WebKit/public/platform/WebCachePolicy.h"
 | 
|  #include "third_party/WebKit/public/platform/WebData.h"
 | 
| @@ -3026,6 +3030,31 @@ RenderFrameImpl::CreateWorkerContentSettingsClientProxy() {
 | 
|        this, frame_);
 | 
|  }
 | 
|  
 | 
| +std::unique_ptr<blink::WebWorkerFetchContext>
 | 
| +RenderFrameImpl::CreateWorkerFetchContext() {
 | 
| +  DCHECK(base::FeatureList::IsEnabled(features::kOffMainThreadFetch));
 | 
| +  mojom::WorkerURLLoaderFactoryProviderPtr worker_url_loader_factory_provider;
 | 
| +  RenderThreadImpl::current()
 | 
| +      ->blink_platform_impl()
 | 
| +      ->GetInterfaceProvider()
 | 
| +      ->GetInterface(mojo::MakeRequest(&worker_url_loader_factory_provider));
 | 
| +  std::unique_ptr<WorkerFetchContextImpl> worker_fetch_context =
 | 
| +      base::MakeUnique<WorkerFetchContextImpl>(
 | 
| +          worker_url_loader_factory_provider.PassInterface());
 | 
| +  blink::WebServiceWorkerNetworkProvider* web_provider =
 | 
| +      frame_->DataSource()->GetServiceWorkerNetworkProvider();
 | 
| +  if (web_provider) {
 | 
| +    ServiceWorkerNetworkProvider* provider =
 | 
| +        ServiceWorkerNetworkProvider::FromWebServiceWorkerNetworkProvider(
 | 
| +            web_provider);
 | 
| +    worker_fetch_context->set_service_worker_provider_id(
 | 
| +        provider->provider_id());
 | 
| +    worker_fetch_context->set_is_controlled_by_service_worker(
 | 
| +        provider->IsControlledByServiceWorker());
 | 
| +  }
 | 
| +  return std::move(worker_fetch_context);
 | 
| +}
 | 
| +
 | 
|  WebExternalPopupMenu* RenderFrameImpl::CreateExternalPopupMenu(
 | 
|      const WebPopupMenuInfo& popup_menu_info,
 | 
|      WebExternalPopupMenuClient* popup_menu_client) {
 | 
| 
 |