Commit c27c10b3 authored by kbr's avatar kbr Committed by Commit bot

Handle all context lost reasons when determining guilt of domain.

This avoids a NOTREACHED() in the previous code. Verified that addition
of new constants without updating the switch statement will cause a
compile failure.

BUG=615113
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_optional_gpu_tests_rel;tryserver.chromium.mac:mac_optional_gpu_tests_rel;tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2029293002
Cr-Commit-Position: refs/heads/master@{#397906}
parent 7289aea0
...@@ -879,19 +879,25 @@ void GpuProcessHost::OnDidLoseContext(bool offscreen, ...@@ -879,19 +879,25 @@ void GpuProcessHost::OnDidLoseContext(bool offscreen,
return; return;
} }
GpuDataManagerImpl::DomainGuilt guilt; GpuDataManagerImpl::DomainGuilt guilt =
GpuDataManagerImpl::DOMAIN_GUILT_UNKNOWN;
switch (reason) { switch (reason) {
case gpu::error::kGuilty: case gpu::error::kGuilty:
guilt = GpuDataManagerImpl::DOMAIN_GUILT_KNOWN; guilt = GpuDataManagerImpl::DOMAIN_GUILT_KNOWN;
break; break;
// Treat most other error codes as though they had unknown provenance.
// In practice this doesn't affect the user experience. A lost context
// of either known or unknown guilt still causes user-level 3D APIs
// (e.g. WebGL) to be blocked on that domain until the user manually
// reenables them.
case gpu::error::kUnknown: case gpu::error::kUnknown:
guilt = GpuDataManagerImpl::DOMAIN_GUILT_UNKNOWN; case gpu::error::kOutOfMemory:
case gpu::error::kMakeCurrentFailed:
case gpu::error::kGpuChannelLost:
case gpu::error::kInvalidGpuMessage:
break; break;
case gpu::error::kInnocent: case gpu::error::kInnocent:
return; return;
default:
NOTREACHED();
return;
} }
GpuDataManagerImpl::GetInstance()->BlockDomainFrom3DAPIs(url, guilt); GpuDataManagerImpl::GetInstance()->BlockDomainFrom3DAPIs(url, guilt);
......
...@@ -57,7 +57,7 @@ namespace error { ...@@ -57,7 +57,7 @@ namespace error {
// client-side. // client-side.
kInvalidGpuMessage, kInvalidGpuMessage,
kContextLostReasonLast = kGpuChannelLost kContextLostReasonLast = kInvalidGpuMessage
}; };
} }
......
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