Commit 4c70d289 authored by Dylan Cutler's avatar Dylan Cutler Committed by Commit Bot

Fix gating for WebGLRenderingContextBase instrumentation for identifiability study.

We want to use IdentifiabilityStudySettings::Get()->IsActive() instead
of IsUserInIdentifiabilityStudy().

We also want to gate getParameter() instrumentation on

IdentifiabilityStudySettings::Get()->IsTypeAllowed(
    blink::IdentifiableSurface::Type::kWebGLParameter)

Bug: 973801
Change-Id: Ib40cf7f890b9ece31d13fe3d35717e6e1b358f00
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2425462
Commit-Queue: Dylan Cutler <dylancutler@google.com>
Reviewed-by: default avatarAsanka Herath <asanka@chromium.org>
Reviewed-by: default avatarDaniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#810267}
parent 0f6c3c25
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
#include "gpu/config/gpu_feature_info.h" #include "gpu/config/gpu_feature_info.h"
#include "third_party/blink/public/common/features.h" #include "third_party/blink/public/common/features.h"
#include "third_party/blink/public/common/privacy_budget/identifiability_metric_builder.h" #include "third_party/blink/public/common/privacy_budget/identifiability_metric_builder.h"
#include "third_party/blink/public/common/privacy_budget/identifiability_study_participation.h" #include "third_party/blink/public/common/privacy_budget/identifiability_study_settings.h"
#include "third_party/blink/public/common/thread_safe_browser_interface_broker_proxy.h" #include "third_party/blink/public/common/thread_safe_browser_interface_broker_proxy.h"
#include "third_party/blink/public/mojom/gpu/gpu.mojom-blink.h" #include "third_party/blink/public/mojom/gpu/gpu.mojom-blink.h"
#include "third_party/blink/public/platform/platform.h" #include "third_party/blink/public/platform/platform.h"
...@@ -3294,8 +3294,10 @@ static const GLenum kIdentifiableGLParams[] = { ...@@ -3294,8 +3294,10 @@ static const GLenum kIdentifiableGLParams[] = {
WebGLDebugRendererInfo::kUnmaskedVendorWebgl, WebGLDebugRendererInfo::kUnmaskedVendorWebgl,
}; };
bool IsIdentifiableGLParam(GLenum pname) { bool ShouldMeasureGLParam(GLenum pname) {
return std::find(std::begin(kIdentifiableGLParams), return IdentifiabilityStudySettings::Get()->IsTypeAllowed(
blink::IdentifiableSurface::Type::kWebGLParameter) &&
std::find(std::begin(kIdentifiableGLParams),
std::end(kIdentifiableGLParams), std::end(kIdentifiableGLParams),
pname) != std::end(kIdentifiableGLParams); pname) != std::end(kIdentifiableGLParams);
} }
...@@ -3305,7 +3307,7 @@ bool IsIdentifiableGLParam(GLenum pname) { ...@@ -3305,7 +3307,7 @@ bool IsIdentifiableGLParam(GLenum pname) {
void WebGLRenderingContextBase::RecordIdentifiableGLParameterDigest( void WebGLRenderingContextBase::RecordIdentifiableGLParameterDigest(
GLenum pname, GLenum pname,
IdentifiableToken value) { IdentifiableToken value) {
if (!IsUserInIdentifiabilityStudy() || !IsIdentifiableGLParam(pname)) if (!ShouldMeasureGLParam(pname))
return; return;
if (const auto& ukm_params = GetUkmParameters()) { if (const auto& ukm_params = GetUkmParameters()) {
blink::IdentifiabilityMetricBuilder(ukm_params->source_id) blink::IdentifiabilityMetricBuilder(ukm_params->source_id)
...@@ -3455,7 +3457,7 @@ ScriptValue WebGLRenderingContextBase::getParameter(ScriptState* script_state, ...@@ -3455,7 +3457,7 @@ ScriptValue WebGLRenderingContextBase::getParameter(ScriptState* script_state,
case GL_SCISSOR_TEST: case GL_SCISSOR_TEST:
return GetBooleanParameter(script_state, pname); return GetBooleanParameter(script_state, pname);
case GL_SHADING_LANGUAGE_VERSION: case GL_SHADING_LANGUAGE_VERSION:
if (IsUserInIdentifiabilityStudy()) { if (IdentifiabilityStudySettings::Get()->IsActive()) {
RecordIdentifiableGLParameterDigest( RecordIdentifiableGLParameterDigest(
pname, IdentifiabilityBenignStringToken(String( pname, IdentifiabilityBenignStringToken(String(
ContextGL()->GetString(GL_SHADING_LANGUAGE_VERSION)))); ContextGL()->GetString(GL_SHADING_LANGUAGE_VERSION))));
...@@ -3522,7 +3524,7 @@ ScriptValue WebGLRenderingContextBase::getParameter(ScriptState* script_state, ...@@ -3522,7 +3524,7 @@ ScriptValue WebGLRenderingContextBase::getParameter(ScriptState* script_state,
case GL_VENDOR: case GL_VENDOR:
return WebGLAny(script_state, String("WebKit")); return WebGLAny(script_state, String("WebKit"));
case GL_VERSION: case GL_VERSION:
if (IsUserInIdentifiabilityStudy()) { if (IdentifiabilityStudySettings::Get()->IsActive()) {
RecordIdentifiableGLParameterDigest( RecordIdentifiableGLParameterDigest(
pname, IdentifiabilityBenignStringToken( pname, IdentifiabilityBenignStringToken(
String(ContextGL()->GetString(GL_VERSION)))); String(ContextGL()->GetString(GL_VERSION))));
...@@ -3542,7 +3544,7 @@ ScriptValue WebGLRenderingContextBase::getParameter(ScriptState* script_state, ...@@ -3542,7 +3544,7 @@ ScriptValue WebGLRenderingContextBase::getParameter(ScriptState* script_state,
return ScriptValue::CreateNull(script_state->GetIsolate()); return ScriptValue::CreateNull(script_state->GetIsolate());
case WebGLDebugRendererInfo::kUnmaskedRendererWebgl: case WebGLDebugRendererInfo::kUnmaskedRendererWebgl:
if (ExtensionEnabled(kWebGLDebugRendererInfoName)) { if (ExtensionEnabled(kWebGLDebugRendererInfoName)) {
if (IsUserInIdentifiabilityStudy()) { if (IdentifiabilityStudySettings::Get()->IsActive()) {
RecordIdentifiableGLParameterDigest( RecordIdentifiableGLParameterDigest(
pname, IdentifiabilityBenignStringToken( pname, IdentifiabilityBenignStringToken(
String(ContextGL()->GetString(GL_RENDERER)))); String(ContextGL()->GetString(GL_RENDERER))));
...@@ -3556,7 +3558,7 @@ ScriptValue WebGLRenderingContextBase::getParameter(ScriptState* script_state, ...@@ -3556,7 +3558,7 @@ ScriptValue WebGLRenderingContextBase::getParameter(ScriptState* script_state,
return ScriptValue::CreateNull(script_state->GetIsolate()); return ScriptValue::CreateNull(script_state->GetIsolate());
case WebGLDebugRendererInfo::kUnmaskedVendorWebgl: case WebGLDebugRendererInfo::kUnmaskedVendorWebgl:
if (ExtensionEnabled(kWebGLDebugRendererInfoName)) { if (ExtensionEnabled(kWebGLDebugRendererInfoName)) {
if (IsUserInIdentifiabilityStudy()) { if (IdentifiabilityStudySettings::Get()->IsActive()) {
RecordIdentifiableGLParameterDigest( RecordIdentifiableGLParameterDigest(
pname, IdentifiabilityBenignStringToken( pname, IdentifiabilityBenignStringToken(
String(ContextGL()->GetString(GL_VENDOR)))); String(ContextGL()->GetString(GL_VENDOR))));
...@@ -4604,7 +4606,7 @@ void WebGLRenderingContextBase::readPixels( ...@@ -4604,7 +4606,7 @@ void WebGLRenderingContextBase::readPixels(
GLenum format, GLenum format,
GLenum type, GLenum type,
MaybeShared<DOMArrayBufferView> pixels) { MaybeShared<DOMArrayBufferView> pixels) {
if (IsUserInIdentifiabilityStudy()) { if (IdentifiabilityStudySettings::Get()->IsActive()) {
if (const auto& ukm_params = GetUkmParameters()) { if (const auto& ukm_params = GetUkmParameters()) {
blink::IdentifiabilityMetricBuilder(ukm_params->source_id) blink::IdentifiabilityMetricBuilder(ukm_params->source_id)
.Set(blink::IdentifiableSurface::FromTypeAndInput( .Set(blink::IdentifiableSurface::FromTypeAndInput(
...@@ -7161,7 +7163,8 @@ ScriptValue WebGLRenderingContextBase::GetWebGLFloatArrayParameter( ...@@ -7161,7 +7163,8 @@ ScriptValue WebGLRenderingContextBase::GetWebGLFloatArrayParameter(
default: default:
NOTIMPLEMENTED(); NOTIMPLEMENTED();
} }
if (IsUserInIdentifiabilityStudy() && IsIdentifiableGLParam(pname)) { if (IdentifiabilityStudySettings::Get()->IsActive() &&
ShouldMeasureGLParam(pname)) {
blink::IdentifiableTokenBuilder builder; blink::IdentifiableTokenBuilder builder;
for (unsigned i = 0; i < length; i++) { for (unsigned i = 0; i < length; i++) {
builder.AddToken(value[i]); builder.AddToken(value[i]);
...@@ -7189,7 +7192,8 @@ ScriptValue WebGLRenderingContextBase::GetWebGLIntArrayParameter( ...@@ -7189,7 +7192,8 @@ ScriptValue WebGLRenderingContextBase::GetWebGLIntArrayParameter(
default: default:
NOTIMPLEMENTED(); NOTIMPLEMENTED();
} }
if (IsUserInIdentifiabilityStudy() && IsIdentifiableGLParam(pname)) { if (IdentifiabilityStudySettings::Get()->IsActive() &&
ShouldMeasureGLParam(pname)) {
blink::IdentifiableTokenBuilder builder; blink::IdentifiableTokenBuilder builder;
for (unsigned i = 0; i < length; i++) { for (unsigned i = 0; i < length; i++) {
builder.AddToken(value[i]); builder.AddToken(value[i]);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment