ResourceLoadObserver.h [plain text]
#pragma once
#include "ResourceLoadStatistics.h"
#include <wtf/CompletionHandler.h>
#include <wtf/Forward.h>
namespace WebCore {
class Document;
class Frame;
class ResourceRequest;
class ResourceResponse;
class ResourceLoadObserver {
WTF_MAKE_FAST_ALLOCATED;
public:
enum class FetchDestinationIsScriptLike : bool { Yes, No };
WEBCORE_EXPORT static ResourceLoadObserver& shared();
WEBCORE_EXPORT static ResourceLoadObserver* sharedIfExists();
WEBCORE_EXPORT static void setShared(ResourceLoadObserver&);
virtual ~ResourceLoadObserver() { }
virtual void logSubresourceLoading(const Frame*, const ResourceRequest& , const ResourceResponse& , FetchDestinationIsScriptLike) { }
virtual void logWebSocketLoading(const URL& , const URL& ) { }
virtual void logUserInteractionWithReducedTimeResolution(const Document&) { }
virtual void logFontLoad(const Document&, const String& , bool ) { }
virtual void logCanvasRead(const Document&) { }
virtual void logCanvasWriteOrMeasure(const Document&, const String& ) { }
virtual void logNavigatorAPIAccessed(const Document&, const ResourceLoadStatistics::NavigatorAPI) { }
virtual void logScreenAPIAccessed(const Document&, const ResourceLoadStatistics::ScreenAPI) { }
virtual void logSubresourceLoadingForTesting(const RegistrableDomain& , const RegistrableDomain& , bool ) { }
virtual String statisticsForURL(const URL&) { return { }; }
virtual void updateCentralStatisticsStore(CompletionHandler<void()>&& completionHandler) { completionHandler(); }
virtual void clearState() { }
virtual bool hasStatistics() const { return false; }
virtual void setDomainsWithUserInteraction(HashSet<RegistrableDomain>&&) { }
virtual bool hasHadUserInteraction(const RegistrableDomain&) const { return false; }
};
}