diff options
Diffstat (limited to 'chromium/third_party/WebKit/Source/core/inspector/InspectorCanvasAgent.cpp')
-rw-r--r-- | chromium/third_party/WebKit/Source/core/inspector/InspectorCanvasAgent.cpp | 93 |
1 files changed, 48 insertions, 45 deletions
diff --git a/chromium/third_party/WebKit/Source/core/inspector/InspectorCanvasAgent.cpp b/chromium/third_party/WebKit/Source/core/inspector/InspectorCanvasAgent.cpp index 5a03d88a17a..5511f4f6506 100644 --- a/chromium/third_party/WebKit/Source/core/inspector/InspectorCanvasAgent.cpp +++ b/chromium/third_party/WebKit/Source/core/inspector/InspectorCanvasAgent.cpp @@ -31,9 +31,8 @@ #include "config.h" #include "core/inspector/InspectorCanvasAgent.h" -#include "HTMLNames.h" -#include "bindings/v8/ScriptObject.h" #include "bindings/v8/ScriptProfiler.h" +#include "bindings/v8/ScriptValue.h" #include "core/html/HTMLCanvasElement.h" #include "core/inspector/BindingVisitors.h" #include "core/inspector/InjectedScript.h" @@ -43,8 +42,8 @@ #include "core/inspector/InspectorState.h" #include "core/inspector/InstrumentingAgents.h" #include "core/loader/DocumentLoader.h" -#include "core/frame/DOMWindow.h" -#include "core/frame/Frame.h" +#include "core/frame/LocalDOMWindow.h" +#include "core/frame/LocalFrame.h" using WebCore::TypeBuilder::Array; using WebCore::TypeBuilder::Canvas::ResourceId; @@ -60,8 +59,8 @@ namespace CanvasAgentState { static const char canvasAgentEnabled[] = "canvasAgentEnabled"; }; -InspectorCanvasAgent::InspectorCanvasAgent(InstrumentingAgents* instrumentingAgents, InspectorCompositeState* state, InspectorPageAgent* pageAgent, InjectedScriptManager* injectedScriptManager) - : InspectorBaseAgent<InspectorCanvasAgent>("Canvas", instrumentingAgents, state) +InspectorCanvasAgent::InspectorCanvasAgent(InspectorPageAgent* pageAgent, InjectedScriptManager* injectedScriptManager) + : InspectorBaseAgent<InspectorCanvasAgent>("Canvas") , m_pageAgent(pageAgent) , m_injectedScriptManager(injectedScriptManager) , m_frontend(0) @@ -116,7 +115,7 @@ void InspectorCanvasAgent::disable(ErrorString*) void InspectorCanvasAgent::dropTraceLog(ErrorString* errorString, const TraceLogId& traceLogId) { InjectedScriptCanvasModule module = injectedScriptCanvasModule(errorString, traceLogId); - if (!module.hasNoValue()) + if (!module.isEmpty()) module.dropTraceLog(errorString, traceLogId); } @@ -135,85 +134,85 @@ void InspectorCanvasAgent::hasUninstrumentedCanvases(ErrorString* errorString, b void InspectorCanvasAgent::captureFrame(ErrorString* errorString, const FrameId* frameId, TraceLogId* traceLogId) { - Frame* frame = frameId ? m_pageAgent->assertFrame(errorString, *frameId) : m_pageAgent->mainFrame(); + LocalFrame* frame = frameId ? m_pageAgent->assertFrame(errorString, *frameId) : m_pageAgent->mainFrame(); if (!frame) return; - InjectedScriptCanvasModule module = injectedScriptCanvasModule(errorString, mainWorldScriptState(frame)); - if (!module.hasNoValue()) + InjectedScriptCanvasModule module = injectedScriptCanvasModule(errorString, ScriptState::forMainWorld(frame)); + if (!module.isEmpty()) module.captureFrame(errorString, traceLogId); } void InspectorCanvasAgent::startCapturing(ErrorString* errorString, const FrameId* frameId, TraceLogId* traceLogId) { - Frame* frame = frameId ? m_pageAgent->assertFrame(errorString, *frameId) : m_pageAgent->mainFrame(); + LocalFrame* frame = frameId ? m_pageAgent->assertFrame(errorString, *frameId) : m_pageAgent->mainFrame(); if (!frame) return; - InjectedScriptCanvasModule module = injectedScriptCanvasModule(errorString, mainWorldScriptState(frame)); - if (!module.hasNoValue()) + InjectedScriptCanvasModule module = injectedScriptCanvasModule(errorString, ScriptState::forMainWorld(frame)); + if (!module.isEmpty()) module.startCapturing(errorString, traceLogId); } void InspectorCanvasAgent::stopCapturing(ErrorString* errorString, const TraceLogId& traceLogId) { InjectedScriptCanvasModule module = injectedScriptCanvasModule(errorString, traceLogId); - if (!module.hasNoValue()) + if (!module.isEmpty()) module.stopCapturing(errorString, traceLogId); } void InspectorCanvasAgent::getTraceLog(ErrorString* errorString, const TraceLogId& traceLogId, const int* startOffset, const int* maxLength, RefPtr<TraceLog>& traceLog) { InjectedScriptCanvasModule module = injectedScriptCanvasModule(errorString, traceLogId); - if (!module.hasNoValue()) + if (!module.isEmpty()) module.traceLog(errorString, traceLogId, startOffset, maxLength, &traceLog); } void InspectorCanvasAgent::replayTraceLog(ErrorString* errorString, const TraceLogId& traceLogId, int stepNo, RefPtr<ResourceState>& result, double* replayTime) { InjectedScriptCanvasModule module = injectedScriptCanvasModule(errorString, traceLogId); - if (!module.hasNoValue()) + if (!module.isEmpty()) module.replayTraceLog(errorString, traceLogId, stepNo, &result, replayTime); } void InspectorCanvasAgent::getResourceState(ErrorString* errorString, const TraceLogId& traceLogId, const ResourceId& resourceId, RefPtr<ResourceState>& result) { InjectedScriptCanvasModule module = injectedScriptCanvasModule(errorString, traceLogId); - if (!module.hasNoValue()) + if (!module.isEmpty()) module.resourceState(errorString, traceLogId, resourceId, &result); } void InspectorCanvasAgent::evaluateTraceLogCallArgument(ErrorString* errorString, const TraceLogId& traceLogId, int callIndex, int argumentIndex, const String* objectGroup, RefPtr<RemoteObject>& result, RefPtr<ResourceState>& resourceState) { InjectedScriptCanvasModule module = injectedScriptCanvasModule(errorString, traceLogId); - if (!module.hasNoValue()) + if (!module.isEmpty()) module.evaluateTraceLogCallArgument(errorString, traceLogId, callIndex, argumentIndex, objectGroup ? *objectGroup : String(), &result, &resourceState); } -ScriptObject InspectorCanvasAgent::wrapCanvas2DRenderingContextForInstrumentation(const ScriptObject& context) +ScriptValue InspectorCanvasAgent::wrapCanvas2DRenderingContextForInstrumentation(const ScriptValue& context) { ErrorString error; InjectedScriptCanvasModule module = injectedScriptCanvasModule(&error, context); - if (module.hasNoValue()) - return ScriptObject(); + if (module.isEmpty()) + return ScriptValue(); return notifyRenderingContextWasWrapped(module.wrapCanvas2DContext(context)); } -ScriptObject InspectorCanvasAgent::wrapWebGLRenderingContextForInstrumentation(const ScriptObject& glContext) +ScriptValue InspectorCanvasAgent::wrapWebGLRenderingContextForInstrumentation(const ScriptValue& glContext) { ErrorString error; InjectedScriptCanvasModule module = injectedScriptCanvasModule(&error, glContext); - if (module.hasNoValue()) - return ScriptObject(); + if (module.isEmpty()) + return ScriptValue(); return notifyRenderingContextWasWrapped(module.wrapWebGLContext(glContext)); } -ScriptObject InspectorCanvasAgent::notifyRenderingContextWasWrapped(const ScriptObject& wrappedContext) +ScriptValue InspectorCanvasAgent::notifyRenderingContextWasWrapped(const ScriptValue& wrappedContext) { ASSERT(m_frontend); ScriptState* scriptState = wrappedContext.scriptState(); - DOMWindow* domWindow = 0; + LocalDOMWindow* domWindow = 0; if (scriptState) domWindow = scriptState->domWindow(); - Frame* frame = domWindow ? domWindow->frame() : 0; + LocalFrame* frame = domWindow ? domWindow->frame() : 0; if (frame && !m_framesWithUninstrumentedCanvases.contains(frame)) m_framesWithUninstrumentedCanvases.set(frame, false); String frameId = m_pageAgent->frameId(frame); @@ -227,23 +226,23 @@ InjectedScriptCanvasModule InspectorCanvasAgent::injectedScriptCanvasModule(Erro if (!checkIsEnabled(errorString)) return InjectedScriptCanvasModule(); InjectedScriptCanvasModule module = InjectedScriptCanvasModule::moduleForState(m_injectedScriptManager, scriptState); - if (module.hasNoValue()) { + if (module.isEmpty()) { ASSERT_NOT_REACHED(); *errorString = "Internal error: no Canvas module"; } return module; } -InjectedScriptCanvasModule InspectorCanvasAgent::injectedScriptCanvasModule(ErrorString* errorString, const ScriptObject& scriptObject) +InjectedScriptCanvasModule InspectorCanvasAgent::injectedScriptCanvasModule(ErrorString* errorString, const ScriptValue& scriptValue) { if (!checkIsEnabled(errorString)) return InjectedScriptCanvasModule(); - if (scriptObject.hasNoValue()) { + if (scriptValue.isEmpty()) { ASSERT_NOT_REACHED(); - *errorString = "Internal error: original ScriptObject has no value"; + *errorString = "Internal error: original ScriptValue has no value"; return InjectedScriptCanvasModule(); } - return injectedScriptCanvasModule(errorString, scriptObject.scriptState()); + return injectedScriptCanvasModule(errorString, scriptValue.scriptState()); } InjectedScriptCanvasModule InspectorCanvasAgent::injectedScriptCanvasModule(ErrorString* errorString, const String& objectId) @@ -251,7 +250,7 @@ InjectedScriptCanvasModule InspectorCanvasAgent::injectedScriptCanvasModule(Erro if (!checkIsEnabled(errorString)) return InjectedScriptCanvasModule(); InjectedScript injectedScript = m_injectedScriptManager->injectedScriptForObjectId(objectId); - if (injectedScript.hasNoValue()) { + if (injectedScript.isEmpty()) { *errorString = "Inspected frame has gone"; return InjectedScriptCanvasModule(); } @@ -260,7 +259,7 @@ InjectedScriptCanvasModule InspectorCanvasAgent::injectedScriptCanvasModule(Erro void InspectorCanvasAgent::findFramesWithUninstrumentedCanvases() { - class NodeVisitor : public WrappedNodeVisitor { + class NodeVisitor FINAL : public WrappedNodeVisitor { public: NodeVisitor(Page* page, FramesWithUninstrumentedCanvases& result) : m_page(page) @@ -270,10 +269,11 @@ void InspectorCanvasAgent::findFramesWithUninstrumentedCanvases() virtual void visitNode(Node* node) OVERRIDE { - if (!node->hasTagName(HTMLNames::canvasTag) || !node->document().frame()) + ASSERT(node); + if (!isHTMLCanvasElement(*node) || !node->document().frame()) return; - Frame* frame = node->document().frame(); + LocalFrame* frame = node->document().frame(); if (frame->page() != m_page) return; @@ -306,7 +306,7 @@ bool InspectorCanvasAgent::checkIsEnabled(ErrorString* errorString) const return false; } -void InspectorCanvasAgent::didCommitLoad(Frame*, DocumentLoader* loader) +void InspectorCanvasAgent::didCommitLoad(LocalFrame*, DocumentLoader* loader) { if (!m_enabled) return; @@ -317,18 +317,21 @@ void InspectorCanvasAgent::didCommitLoad(Frame*, DocumentLoader* loader) m_frontend->traceLogsRemoved(0, 0); } else { while (frame) { - if (m_framesWithUninstrumentedCanvases.contains(frame)) - m_framesWithUninstrumentedCanvases.set(frame, false); - if (m_pageAgent->hasIdForFrame(frame)) { - String frameId = m_pageAgent->frameId(frame); - m_frontend->traceLogsRemoved(&frameId, 0); + if (frame->isLocalFrame()) { + LocalFrame* localFrame = toLocalFrame(frame); + if (m_framesWithUninstrumentedCanvases.contains(localFrame)) + m_framesWithUninstrumentedCanvases.set(localFrame, false); + if (m_pageAgent->hasIdForFrame(localFrame)) { + String frameId = m_pageAgent->frameId(localFrame); + m_frontend->traceLogsRemoved(&frameId, 0); + } } frame = frame->tree().traverseNext(); } } } -void InspectorCanvasAgent::frameDetachedFromParent(Frame* frame) +void InspectorCanvasAgent::frameDetachedFromParent(LocalFrame* frame) { if (m_enabled) m_framesWithUninstrumentedCanvases.remove(frame); @@ -340,8 +343,8 @@ void InspectorCanvasAgent::didBeginFrame() return; ErrorString error; for (FramesWithUninstrumentedCanvases::const_iterator it = m_framesWithUninstrumentedCanvases.begin(); it != m_framesWithUninstrumentedCanvases.end(); ++it) { - InjectedScriptCanvasModule module = injectedScriptCanvasModule(&error, mainWorldScriptState(it->key)); - if (!module.hasNoValue()) + InjectedScriptCanvasModule module = injectedScriptCanvasModule(&error, ScriptState::forMainWorld(it->key)); + if (!module.isEmpty()) module.markFrameEnd(); } } |