summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h')
-rw-r--r--chromium/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h39
1 files changed, 28 insertions, 11 deletions
diff --git a/chromium/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h b/chromium/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h
index 327e6812aba..7bfb1e03b7a 100644
--- a/chromium/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h
+++ b/chromium/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h
@@ -43,6 +43,7 @@
#include "third_party/blink/renderer/platform/loader/fetch/resource_load_scheduler.h"
#include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
#include "third_party/blink/renderer/platform/mojo/heap_mojo_wrapper_mode.h"
+#include "third_party/blink/renderer/platform/mojo/mojo_binding_context.h"
#include "third_party/blink/renderer/platform/platform_export.h"
#include "third_party/blink/renderer/platform/timer.h"
#include "third_party/blink/renderer/platform/wtf/hash_map.h"
@@ -52,6 +53,7 @@
namespace blink {
enum class ResourceType : uint8_t;
+class BackForwardCacheLoaderHelper;
class DetachableConsoleLogger;
class DetachableUseCounter;
class DetachableResourceFetcherProperties;
@@ -64,6 +66,7 @@ class ResourceError;
class ResourceLoadObserver;
class ResourceTimingInfo;
class SubresourceWebBundle;
+class WebBackForwardCacheLoaderHelper;
class WebCodeCacheLoader;
struct ResourceFetcherInit;
struct ResourceLoaderOptions;
@@ -99,8 +102,8 @@ class PLATFORM_EXPORT ResourceFetcher
const ResourceRequest&,
const ResourceLoaderOptions&,
scoped_refptr<base::SingleThreadTaskRunner> freezable_task_runner,
- scoped_refptr<base::SingleThreadTaskRunner>
- unfreezable_task_runner) = 0;
+ scoped_refptr<base::SingleThreadTaskRunner> unfreezable_task_runner,
+ WebBackForwardCacheLoaderHelper) = 0;
// Create a code cache loader to fetch data from code caches.
virtual std::unique_ptr<WebCodeCacheLoader> CreateCodeCacheLoader() = 0;
@@ -174,11 +177,13 @@ class PLATFORM_EXPORT ResourceFetcher
base::OnceCallback<void(int)>);
using DocumentResourceMap = HeapHashMap<String, WeakMember<Resource>>;
+ // Note: This function is defined for devtools. Do not use this function in
+ // non-inspector/non-tent-only contexts.
const DocumentResourceMap& AllResources() const {
return cached_resources_map_;
}
- enum class LoadBlockingPolicy {
+ enum class ImageLoadBlockingPolicy {
kDefault,
kForceNonBlockingLoad,
};
@@ -189,7 +194,10 @@ class PLATFORM_EXPORT ResourceFetcher
// call this method explicitly on cases such as ResourceNeedsLoad() returning
// false.
bool StartLoad(Resource*);
- bool StartLoad(Resource*, ResourceRequestBody, LoadBlockingPolicy);
+ bool StartLoad(Resource*,
+ ResourceRequestBody,
+ ImageLoadBlockingPolicy,
+ RenderBlockingBehavior);
void SetAutoLoadImages(bool);
void SetImagesEnabled(bool);
@@ -305,8 +313,12 @@ class PLATFORM_EXPORT ResourceFetcher
void AddSubresourceWebBundle(SubresourceWebBundle& subresource_web_bundle);
void RemoveSubresourceWebBundle(SubresourceWebBundle& subresource_web_bundle);
+ void AttachWebBundleTokenIfNeeded(ResourceRequest&) const;
+ bool ShouldBeLoadedFromWebBundle(const KURL&) const;
- void EvictFromBackForwardCache(mojom::RendererEvictionReason reason);
+ BackForwardCacheLoaderHelper* GetBackForwardCacheLoaderHelper() {
+ return back_forward_cache_loader_helper_;
+ }
private:
friend class ResourceCacheValidationSuppressor;
@@ -341,8 +353,8 @@ class PLATFORM_EXPORT ResourceFetcher
const ResourceFactory&,
WebScopedVirtualTimePauser& virtual_time_pauser);
- Resource* ResourceForStaticData(const FetchParameters&,
- const ResourceFactory&);
+ Resource* CreateResourceForStaticData(const FetchParameters&,
+ const ResourceFactory&);
Resource* ResourceForBlockedRequest(const FetchParameters&,
const ResourceFactory&,
ResourceRequestBlockedReason,
@@ -394,7 +406,8 @@ class PLATFORM_EXPORT ResourceFetcher
void DidLoadResourceFromMemoryCache(Resource*,
const ResourceRequest&,
- bool is_static_data);
+ bool is_static_data,
+ RenderBlockingBehavior);
bool ResourceNeedsLoad(Resource*, const FetchParameters&, RevalidationPolicy);
@@ -406,7 +419,8 @@ class PLATFORM_EXPORT ResourceFetcher
RevalidationPolicy,
const FetchParameters&,
const ResourceFactory&,
- bool is_static_data) const;
+ bool is_static_data,
+ bool same_top_frame_site_resource_cached) const;
void ScheduleStaleRevalidate(Resource* stale_resource);
void RevalidateStaleResource(Resource* stale_resource);
@@ -422,6 +436,7 @@ class PLATFORM_EXPORT ResourceFetcher
const Member<DetachableConsoleLogger> console_logger_;
Member<LoaderFactory> loader_factory_;
const Member<ResourceLoadScheduler> scheduler_;
+ Member<BackForwardCacheLoaderHelper> back_forward_cache_loader_helper_;
DocumentResourceMap cached_resources_map_;
@@ -437,7 +452,7 @@ class PLATFORM_EXPORT ResourceFetcher
HeapVector<Member<Resource>> matched_preloads_;
Member<MHTMLArchive> archive_;
- TaskRunnerTimer<ResourceFetcher> resource_timing_report_timer_;
+ HeapTaskRunnerTimer<ResourceFetcher> resource_timing_report_timer_;
TaskHandle unused_preloads_timer_;
@@ -529,7 +544,8 @@ struct PLATFORM_EXPORT ResourceFetcherInit final {
scoped_refptr<base::SingleThreadTaskRunner> freezable_task_runner,
scoped_refptr<base::SingleThreadTaskRunner> unfreezable_task_runner,
ResourceFetcher::LoaderFactory* loader_factory,
- ContextLifecycleNotifier* context_lifecycle_notifier);
+ ContextLifecycleNotifier* context_lifecycle_notifier,
+ BackForwardCacheLoaderHelper* back_forward_cache_loader_helper = nullptr);
DetachableResourceFetcherProperties* const properties;
FetchContext* const context;
@@ -546,6 +562,7 @@ struct PLATFORM_EXPORT ResourceFetcherInit final {
ResourceLoadScheduler::ThrottleOptionOverride throttle_option_override =
ResourceLoadScheduler::ThrottleOptionOverride::kNone;
LoadingBehaviorObserver* loading_behavior_observer = nullptr;
+ BackForwardCacheLoaderHelper* back_forward_cache_loader_helper = nullptr;
DISALLOW_COPY_AND_ASSIGN(ResourceFetcherInit);
};