Index: third_party/WebKit/Source/core/inspector/InspectorAnimationAgent.cpp |
diff --git a/third_party/WebKit/Source/core/inspector/InspectorAnimationAgent.cpp b/third_party/WebKit/Source/core/inspector/InspectorAnimationAgent.cpp |
index ca6e4b9bfdb4971d08e8e17fffdf151aeb2a5952..1cbe3a1a8b0b6afb1dfd11addec037e26cd54b29 100644 |
--- a/third_party/WebKit/Source/core/inspector/InspectorAnimationAgent.cpp |
+++ b/third_party/WebKit/Source/core/inspector/InspectorAnimationAgent.cpp |
@@ -23,7 +23,6 @@ |
#include "core/frame/LocalFrame.h" |
#include "core/inspector/InspectedFrames.h" |
#include "core/inspector/InspectorCSSAgent.h" |
-#include "core/inspector/InspectorDOMAgent.h" |
#include "core/inspector/InspectorStyleSheet.h" |
#include "core/inspector/V8InspectorString.h" |
#include "platform/Decimal.h" |
@@ -40,11 +39,9 @@ namespace blink { |
InspectorAnimationAgent::InspectorAnimationAgent( |
InspectedFrames* inspectedFrames, |
- InspectorDOMAgent* domAgent, |
InspectorCSSAgent* cssAgent, |
v8_inspector::V8InspectorSession* v8Session) |
: m_inspectedFrames(inspectedFrames), |
- m_domAgent(domAgent), |
m_cssAgent(cssAgent), |
m_v8Session(v8Session), |
m_isCloning(false) {} |
@@ -52,22 +49,22 @@ InspectorAnimationAgent::InspectorAnimationAgent( |
void InspectorAnimationAgent::restore() { |
if (m_state->booleanProperty(AnimationAgentState::animationAgentEnabled, |
false)) { |
- ErrorString error; |
- enable(&error); |
+ enable(); |
double playbackRate = 1; |
m_state->getDouble(AnimationAgentState::animationAgentPlaybackRate, |
&playbackRate); |
- setPlaybackRate(nullptr, playbackRate); |
+ setPlaybackRate(playbackRate); |
} |
} |
-void InspectorAnimationAgent::enable(ErrorString*) { |
+Response InspectorAnimationAgent::enable() { |
m_state->setBoolean(AnimationAgentState::animationAgentEnabled, true); |
m_instrumentingAgents->addInspectorAnimationAgent(this); |
+ return Response::OK(); |
} |
-void InspectorAnimationAgent::disable(ErrorString*) { |
- setPlaybackRate(nullptr, 1); |
+Response InspectorAnimationAgent::disable() { |
+ setPlaybackRate(1); |
for (const auto& clone : m_idToAnimationClone.values()) |
clone->cancel(); |
m_state->setBoolean(AnimationAgentState::animationAgentEnabled, false); |
@@ -76,6 +73,7 @@ void InspectorAnimationAgent::disable(ErrorString*) { |
m_idToAnimationType.clear(); |
m_idToAnimationClone.clear(); |
m_clearedAnimations.clear(); |
+ return Response::OK(); |
} |
void InspectorAnimationAgent::didCommitLoadForLocalFrame(LocalFrame* frame) { |
@@ -88,7 +86,7 @@ void InspectorAnimationAgent::didCommitLoadForLocalFrame(LocalFrame* frame) { |
double playbackRate = 1; |
m_state->getDouble(AnimationAgentState::animationAgentPlaybackRate, |
&playbackRate); |
- setPlaybackRate(nullptr, playbackRate); |
+ setPlaybackRate(playbackRate); |
} |
static std::unique_ptr<protocol::Animation::AnimationEffect> |
@@ -214,25 +212,25 @@ InspectorAnimationAgent::buildObjectForAnimation(blink::Animation& animation) { |
return animationObject; |
} |
-void InspectorAnimationAgent::getPlaybackRate(ErrorString*, |
- double* playbackRate) { |
+Response InspectorAnimationAgent::getPlaybackRate(double* playbackRate) { |
*playbackRate = referenceTimeline().playbackRate(); |
+ return Response::OK(); |
} |
-void InspectorAnimationAgent::setPlaybackRate(ErrorString*, |
- double playbackRate) { |
+Response InspectorAnimationAgent::setPlaybackRate(double playbackRate) { |
for (LocalFrame* frame : *m_inspectedFrames) |
frame->document()->timeline().setPlaybackRate(playbackRate); |
m_state->setDouble(AnimationAgentState::animationAgentPlaybackRate, |
playbackRate); |
+ return Response::OK(); |
} |
-void InspectorAnimationAgent::getCurrentTime(ErrorString* errorString, |
- const String& id, |
- double* currentTime) { |
- blink::Animation* animation = assertAnimation(errorString, id); |
- if (!animation) |
- return; |
+Response InspectorAnimationAgent::getCurrentTime(const String& id, |
+ double* currentTime) { |
+ blink::Animation* animation = nullptr; |
+ Response response = assertAnimation(id, animation); |
+ if (!response.isSuccess()) |
+ return response; |
if (m_idToAnimationClone.get(id)) |
animation = m_idToAnimationClone.get(id); |
@@ -243,22 +241,21 @@ void InspectorAnimationAgent::getCurrentTime(ErrorString* errorString, |
*currentTime = |
animation->timeline()->currentTime() - animation->startTime(); |
} |
+ return Response::OK(); |
} |
-void InspectorAnimationAgent::setPaused( |
- ErrorString* errorString, |
+Response InspectorAnimationAgent::setPaused( |
std::unique_ptr<protocol::Array<String>> animationIds, |
bool paused) { |
for (size_t i = 0; i < animationIds->length(); ++i) { |
String animationId = animationIds->get(i); |
- blink::Animation* animation = assertAnimation(errorString, animationId); |
- if (!animation) |
- return; |
+ blink::Animation* animation = nullptr; |
+ Response response = assertAnimation(animationId, animation); |
+ if (!response.isSuccess()) |
+ return response; |
blink::Animation* clone = animationClone(animation); |
- if (!clone) { |
- *errorString = "Failed to clone detached animation"; |
- return; |
- } |
+ if (!clone) |
+ return Response::Error("Failed to clone detached animation"); |
if (paused && !clone->paused()) { |
// Ensure we restore a current time if the animation is limited. |
double currentTime = |
@@ -269,6 +266,7 @@ void InspectorAnimationAgent::setPaused( |
clone->unpause(); |
} |
} |
+ return Response::OK(); |
} |
blink::Animation* InspectorAnimationAgent::animationClone( |
@@ -317,28 +315,26 @@ blink::Animation* InspectorAnimationAgent::animationClone( |
return m_idToAnimationClone.get(id); |
} |
-void InspectorAnimationAgent::seekAnimations( |
- ErrorString* errorString, |
+Response InspectorAnimationAgent::seekAnimations( |
std::unique_ptr<protocol::Array<String>> animationIds, |
double currentTime) { |
for (size_t i = 0; i < animationIds->length(); ++i) { |
String animationId = animationIds->get(i); |
- blink::Animation* animation = assertAnimation(errorString, animationId); |
- if (!animation) |
- return; |
+ blink::Animation* animation = nullptr; |
+ Response response = assertAnimation(animationId, animation); |
+ if (!response.isSuccess()) |
+ return response; |
blink::Animation* clone = animationClone(animation); |
- if (!clone) { |
- *errorString = "Failed to clone a detached animation."; |
- return; |
- } |
+ if (!clone) |
+ return Response::Error("Failed to clone a detached animation."); |
if (!clone->paused()) |
clone->play(); |
clone->setCurrentTime(currentTime); |
} |
+ return Response::OK(); |
} |
-void InspectorAnimationAgent::releaseAnimations( |
- ErrorString* errorString, |
+Response InspectorAnimationAgent::releaseAnimations( |
std::unique_ptr<protocol::Array<String>> animationIds) { |
for (size_t i = 0; i < animationIds->length(); ++i) { |
String animationId = animationIds->get(i); |
@@ -353,15 +349,16 @@ void InspectorAnimationAgent::releaseAnimations( |
m_idToAnimationType.remove(animationId); |
m_clearedAnimations.add(animationId); |
} |
+ return Response::OK(); |
} |
-void InspectorAnimationAgent::setTiming(ErrorString* errorString, |
- const String& animationId, |
- double duration, |
- double delay) { |
- blink::Animation* animation = assertAnimation(errorString, animationId); |
- if (!animation) |
- return; |
+Response InspectorAnimationAgent::setTiming(const String& animationId, |
+ double duration, |
+ double delay) { |
+ blink::Animation* animation = nullptr; |
+ Response response = assertAnimation(animationId, animation); |
+ if (!response.isSuccess()) |
+ return response; |
animation = animationClone(animation); |
NonThrowableExceptionState exceptionState; |
@@ -396,26 +393,25 @@ void InspectorAnimationAgent::setTiming(ErrorString* errorString, |
timing->setDuration(unrestrictedDuration, exceptionState); |
timing->setDelay(delay); |
} |
+ return Response::OK(); |
} |
-void InspectorAnimationAgent::resolveAnimation( |
- ErrorString* errorString, |
+Response InspectorAnimationAgent::resolveAnimation( |
const String& animationId, |
std::unique_ptr<v8_inspector::protocol::Runtime::API::RemoteObject>* |
result) { |
- blink::Animation* animation = assertAnimation(errorString, animationId); |
- if (!animation) |
- return; |
+ blink::Animation* animation = nullptr; |
+ Response response = assertAnimation(animationId, animation); |
+ if (!response.isSuccess()) |
+ return response; |
if (m_idToAnimationClone.get(animationId)) |
animation = m_idToAnimationClone.get(animationId); |
const Element* element = toKeyframeEffect(animation->effect())->target(); |
Document* document = element->ownerDocument(); |
LocalFrame* frame = document ? document->frame() : nullptr; |
ScriptState* scriptState = frame ? ScriptState::forMainWorld(frame) : nullptr; |
- if (!scriptState) { |
- *errorString = "Element not associated with a document."; |
- return; |
- } |
+ if (!scriptState) |
+ return Response::Error("Element not associated with a document."); |
ScriptState::Scope scope(scriptState); |
static const char kAnimationObjectGroup[] = "animation"; |
@@ -426,7 +422,8 @@ void InspectorAnimationAgent::resolveAnimation( |
toV8(animation, scriptState->context()->Global(), scriptState->isolate()), |
toV8InspectorStringView(kAnimationObjectGroup)); |
if (!*result) |
- *errorString = "Element not associated with a document."; |
+ return Response::Error("Element not associated with a document."); |
+ return Response::OK(); |
} |
static CSSPropertyID animationProperties[] = { |
@@ -520,15 +517,12 @@ void InspectorAnimationAgent::didClearDocumentOfWindowObject( |
referenceTimeline().playbackRate()); |
} |
-blink::Animation* InspectorAnimationAgent::assertAnimation( |
- ErrorString* errorString, |
- const String& id) { |
- blink::Animation* animation = m_idToAnimation.get(id); |
- if (!animation) { |
- *errorString = "Could not find animation with given id"; |
- return nullptr; |
- } |
- return animation; |
+Response InspectorAnimationAgent::assertAnimation(const String& id, |
+ blink::Animation*& result) { |
+ result = m_idToAnimation.get(id); |
+ if (!result) |
+ return Response::Error("Could not find animation with given id"); |
+ return Response::OK(); |
} |
AnimationTimeline& InspectorAnimationAgent::referenceTimeline() { |
@@ -547,7 +541,6 @@ double InspectorAnimationAgent::normalizedStartTime( |
DEFINE_TRACE(InspectorAnimationAgent) { |
visitor->trace(m_inspectedFrames); |
- visitor->trace(m_domAgent); |
visitor->trace(m_cssAgent); |
visitor->trace(m_idToAnimation); |
visitor->trace(m_idToAnimationClone); |