| Index: third_party/WebKit/Source/modules/webaudio/AudioContext.cpp
|
| diff --git a/third_party/WebKit/Source/modules/webaudio/AudioContext.cpp b/third_party/WebKit/Source/modules/webaudio/AudioContext.cpp
|
| index 920678225ca55b9c22d8908fa4de6b3d7bce0f17..4d7fa832a5b06a01c208e7bb6beb30c1ee333b28 100644
|
| --- a/third_party/WebKit/Source/modules/webaudio/AudioContext.cpp
|
| +++ b/third_party/WebKit/Source/modules/webaudio/AudioContext.cpp
|
| @@ -9,8 +9,12 @@
|
| #include "bindings/core/v8/ScriptPromiseResolver.h"
|
| #include "core/dom/DOMException.h"
|
| #include "core/dom/ExceptionCode.h"
|
| +#include "core/frame/LocalDOMWindow.h"
|
| #include "core/frame/UseCounter.h"
|
| +#include "core/timing/DOMWindowPerformance.h"
|
| +#include "core/timing/Performance.h"
|
| #include "modules/webaudio/AudioBufferCallback.h"
|
| +#include "modules/webaudio/AudioTimestamp.h"
|
| #include "platform/Histogram.h"
|
| #include "platform/audio/AudioUtilities.h"
|
|
|
| @@ -151,6 +155,33 @@ ScriptPromise AudioContext::resumeContext(ScriptState* scriptState) {
|
| return promise;
|
| }
|
|
|
| +void AudioContext::getOutputTimestamp(ScriptState* scriptState,
|
| + AudioTimestamp& result) {
|
| + DCHECK(isMainThread());
|
| + LocalDOMWindow* window = scriptState->domWindow();
|
| + if (!window)
|
| + return;
|
| +
|
| + if (!destination()) {
|
| + result.setContextTime(0.0);
|
| + result.setPerformanceTime(0.0);
|
| + return;
|
| + }
|
| +
|
| + Performance* performance = DOMWindowPerformance::performance(*window);
|
| + DCHECK(performance);
|
| +
|
| + AudioIOPosition position = outputPosition();
|
| +
|
| + double performanceTime =
|
| + performance->monotonicTimeToDOMHighResTimeStamp(position.timestamp);
|
| + if (performanceTime < 0.0)
|
| + performanceTime = 0.0;
|
| +
|
| + result.setContextTime(position.position);
|
| + result.setPerformanceTime(performanceTime);
|
| +}
|
| +
|
| ScriptPromise AudioContext::closeContext(ScriptState* scriptState) {
|
| if (isContextClosed()) {
|
| // We've already closed the context previously, but it hasn't yet been
|
|
|