ResourceLoadStatisticsClassifier.cpp [plain text]
#include "config.h"
#include "ResourceLoadStatisticsClassifier.h"
#include "Logging.h"
#include <WebCore/ResourceLoadStatistics.h>
using namespace WebCore;
namespace WebKit {
static const auto featureVectorLengthThreshold = 3;
bool ResourceLoadStatisticsClassifier::hasPrevalentResourceCharacteristics(const ResourceLoadStatistics& resourceStatistic)
{
auto subresourceUnderTopFrameOriginsCount = resourceStatistic.subresourceUnderTopFrameOrigins.size();
auto subresourceUniqueRedirectsToCount = resourceStatistic.subresourceUniqueRedirectsTo.size();
auto subframeUnderTopFrameOriginsCount = resourceStatistic.subframeUnderTopFrameOrigins.size();
if (!subresourceUnderTopFrameOriginsCount
&& !subresourceUniqueRedirectsToCount
&& !subframeUnderTopFrameOriginsCount)
return false;
if (subresourceUnderTopFrameOriginsCount > featureVectorLengthThreshold
|| subresourceUniqueRedirectsToCount > featureVectorLengthThreshold
|| subframeUnderTopFrameOriginsCount > featureVectorLengthThreshold)
return true;
return classify(subresourceUnderTopFrameOriginsCount, subresourceUniqueRedirectsToCount, subframeUnderTopFrameOriginsCount);
}
bool ResourceLoadStatisticsClassifier::classifyWithVectorThreshold(unsigned a, unsigned b, unsigned c)
{
LOG(ResourceLoadStatistics, "ResourceLoadStatisticsClassifier::classifyWithVectorThreshold(): Classified with threshold.");
return sqrt(a * a + b * b + c * c) > featureVectorLengthThreshold;
}
}