void InspectorAccessibilityAgent::getAXNode(ErrorString* errorString, int nodeId, RefPtr<AXNode>& accessibilityNode) { Frame* mainFrame = m_page->mainFrame(); if (!mainFrame->isLocalFrame()) { *errorString = "Can't inspect out of process frames yet"; return; } InspectorDOMAgent* domAgent = toLocalFrame(mainFrame)->instrumentingAgents()->inspectorDOMAgent(); if (!domAgent) { *errorString = "DOM agent must be enabled"; return; } Node* node = domAgent->assertNode(errorString, nodeId); if (!node) return; Document& document = node->document(); OwnPtr<ScopedAXObjectCache> cache = ScopedAXObjectCache::create(document); AXObjectCacheImpl* cacheImpl = toAXObjectCacheImpl(cache->get()); AXObject* axObject = cacheImpl->getOrCreate(node); if (!axObject || axObject->accessibilityIsIgnored()) { accessibilityNode = buildObjectForIgnoredNode(node, axObject, cacheImpl); return; } RefPtr<TypeBuilder::Array<AXProperty>> properties = TypeBuilder::Array<AXProperty>::create(); fillLiveRegionProperties(axObject, properties); fillGlobalStates(axObject, properties); fillWidgetProperties(axObject, properties); fillWidgetStates(axObject, properties); fillRelationships(axObject, properties); accessibilityNode = buildObjectForNode(node, axObject, cacheImpl, properties); }
long InjectedScriptHost::inspectedNode(unsigned long num) { InspectorDOMAgent* domAgent = inspectorDOMAgent(); if (!domAgent) return 0; return domAgent->inspectedNode(num); }
long InspectorBackend::pushNodePathToFrontend(Node* node, bool selectInUI) { InspectorFrontend* frontend = inspectorFrontend(); InspectorDOMAgent* domAgent = inspectorDOMAgent(); if (!domAgent || !frontend) return 0; long id = domAgent->pushNodePathToFrontend(node); if (selectInUI) frontend->updateFocusedNode(id); return id; }
long InjectedScriptHost::pushNodePathToFrontend(Node* node, bool withChildren, bool selectInUI) { InspectorDOMAgent* domAgent = inspectorDOMAgent(); if (!domAgent || !frontend()) return 0; long id = domAgent->pushNodePathToFrontend(node); if (withChildren) domAgent->pushChildNodesToFrontend(id); if (selectInUI) frontend()->updateFocusedNode(id); return id; }
int InspectorLayerTreeAgent::idForNode(ErrorString* errorString, Node* node) { if (!node) return 0; InspectorDOMAgent* domAgent = m_instrumentingAgents->inspectorDOMAgent(); int nodeId = domAgent->boundNodeId(node); if (!nodeId) nodeId = domAgent->pushNodeToFrontend(errorString, domAgent->boundNodeId(&node->document()), node); return nodeId; }
void InspectorLayerTreeAgent::nodeIdForLayerId(ErrorString* errorString, const String& layerId, int* resultNodeId) { // Obtain the RenderLayer from the identifier provided. const RenderLayer* renderLayer = m_idToLayer.get(layerId); // Send an error if there is no such registered layer id. if (!renderLayer) { *errorString = "Could not find a bound layer for the provided id"; return; } // Get the node id from the DOM agent and return it to the front-end. InspectorDOMAgent* inspectorDOMAgent = m_instrumentingAgents->inspectorDOMAgent(); *resultNodeId = inspectorDOMAgent->pushNodePathForRenderLayerToFrontend(renderLayer); }
void InspectorInstrumentation::willInsertDOMNodeImpl(InspectorController* inspectorController, Node* node, Node* parent) { #if ENABLE(JAVASCRIPT_DEBUGGER) InspectorDebuggerAgent* debuggerAgent = inspectorController->m_debuggerAgent.get(); if (!debuggerAgent) return; InspectorDOMAgent* domAgent = inspectorController->m_domAgent.get(); if (!domAgent) return; RefPtr<InspectorObject> eventData = InspectorObject::create(); if (domAgent->shouldBreakOnNodeInsertion(node, parent, eventData)) { eventData->setString("breakpointType", domNativeBreakpointType); debuggerAgent->breakProgram(NativeBreakpointDebuggerEventType, eventData); } #endif }
void InspectorInstrumentation::willModifyDOMAttrImpl(InspectorController* inspectorController, Element* element) { #if ENABLE(JAVASCRIPT_DEBUGGER) InspectorDebuggerAgent* debuggerAgent = inspectorController->m_debuggerAgent.get(); if (!debuggerAgent) return; InspectorDOMAgent* domAgent = inspectorController->m_domAgent.get(); if (!domAgent) return; RefPtr<InspectorObject> eventData = InspectorObject::create(); if (domAgent->shouldBreakOnAttributeModification(element, eventData)) { eventData->setString("breakpointType", domNativeBreakpointType); debuggerAgent->breakProgram(NativeBreakpointDebuggerEventType, eventData); } #endif }