blob: db31595cac5f638b93c7476cfc491982afb80c6e [file] [log] [blame]
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "modules/vr/VRGetDevicesCallback.h"
#include "bindings/core/v8/ScriptPromiseResolver.h"
namespace blink {
VRGetDevicesCallback::VRGetDevicesCallback(ScriptPromiseResolver* resolver)
: resolver_(resolver) {}
VRGetDevicesCallback::~VRGetDevicesCallback() = default;
void VRGetDevicesCallback::OnSuccess(VRDisplayVector displays) {
bool display_supports_presentation = false;
for (auto display : displays) {
if (display->capabilities()->canPresent()) {
display_supports_presentation = true;
}
}
if (display_supports_presentation) {
ExecutionContext* execution_context =
ExecutionContext::From(resolver_->GetScriptState());
UseCounter::Count(execution_context,
WebFeature::kVRGetDisplaysSupportsPresent);
}
resolver_->Resolve(displays);
}
void VRGetDevicesCallback::OnError() {
resolver_->Reject();
}
} // namespace blink