void PluginHalter::timerFired(Timer<PluginHalter>*) { if (m_plugins.isEmpty()) return; Vector<HaltablePlugin*> plugins; copyKeysToVector(m_plugins, plugins); // Plug-ins older than this are candidates to be halted. double pluginCutOffTime = WTF::currentTime() - m_pluginAllowedRunTime; m_oldestStartTime = numeric_limits<double>::max(); for (size_t i = 0; i < plugins.size(); ++i) { double thisStartTime = m_plugins.get(plugins[i]); if (thisStartTime > pluginCutOffTime) { // This plug-in is too young to be halted. We find the oldest // plug-in that is not old enough to be halted and use it to set // the timer's next fire time. if (thisStartTime < m_oldestStartTime) m_oldestStartTime = thisStartTime; continue; } if (m_client->shouldHaltPlugin(plugins[i]->node(), plugins[i]->isWindowed(), plugins[i]->pluginName())) plugins[i]->halt(); m_plugins.remove(plugins[i]); } startTimerIfNecessary(); }
void InspectorDebuggerAgent::clearInspectorBreakpointState() { ErrorString dummyError; Vector<String> breakpointIdentifiers; copyKeysToVector(m_breakpointIdentifierToDebugServerBreakpointIDs, breakpointIdentifiers); for (const String& identifier : breakpointIdentifiers) removeBreakpoint(dummyError, identifier); m_javaScriptBreakpoints.clear(); clearDebuggerBreakpointState(); }
void DocumentMarkerController::removeMarkers(DocumentMarker::MarkerTypes markerTypes) { if (!possiblyHasMarkers(markerTypes)) return; ASSERT(!m_markers.isEmpty()); Vector<RefPtr<Node>> nodesWithMarkers; copyKeysToVector(m_markers, nodesWithMarkers); for (auto& node : nodesWithMarkers) { auto iterator = m_markers.find(node); if (iterator != m_markers.end()) removeMarkersFromList(iterator, markerTypes); } m_possiblyExistingMarkerTypes.remove(markerTypes); }
void DocumentMarkerController::removeMarkers(DocumentMarker::MarkerTypes markerTypes) { if (!possiblyHasMarkers(markerTypes)) return; ASSERT(!m_markers.isEmpty()); Vector<RefPtr<Node>> nodesWithMarkers; copyKeysToVector(m_markers, nodesWithMarkers); unsigned size = nodesWithMarkers.size(); for (unsigned i = 0; i < size; ++i) { MarkerMap::iterator iterator = m_markers.find(nodesWithMarkers[i]); if (iterator != m_markers.end()) removeMarkersFromList(iterator, markerTypes); } m_possiblyExistingMarkerTypes.remove(markerTypes); }