Ignore:
Timestamp:
Mar 2, 2018, 9:13:32 AM (7 years ago)
Author:
Yusuke Suzuki
Message:

Remove monotonicallyIncreasingTime
https://bugs.webkit.org/show_bug.cgi?id=182911

Reviewed by Michael Catanzaro.

Source/JavaScriptCore:

  • debugger/Debugger.cpp:

(JSC::Debugger::willEvaluateScript):
(JSC::Debugger::didEvaluateScript):

  • debugger/Debugger.h:
  • debugger/ScriptProfilingScope.h:
  • inspector/agents/InspectorDebuggerAgent.cpp:

(Inspector::InspectorDebuggerAgent::breakpointActionProbe):

  • inspector/agents/InspectorHeapAgent.cpp:

(Inspector::InspectorHeapAgent::snapshot):
(Inspector::InspectorHeapAgent::didGarbageCollect):
(Inspector::InspectorHeapAgent::dispatchGarbageCollectedEvent):

  • inspector/agents/InspectorHeapAgent.h:
  • inspector/agents/InspectorScriptProfilerAgent.cpp:

(Inspector::InspectorScriptProfilerAgent::startTracking):
(Inspector::InspectorScriptProfilerAgent::willEvaluateScript):
(Inspector::InspectorScriptProfilerAgent::didEvaluateScript):
(Inspector::InspectorScriptProfilerAgent::addEvent):
(Inspector::buildSamples):

  • inspector/agents/InspectorScriptProfilerAgent.h:
  • runtime/SamplingProfiler.cpp:

(JSC::SamplingProfiler::takeSample):

  • runtime/SamplingProfiler.h:

Source/WebCore:

While generic code uses MonotonicTime, CAAnimation uses media time (CFTimeInterval).
At this boundary, we convert MonotonicTime to media time, this is the same logic to
the code before this patch.

  • Modules/gamepad/Gamepad.h:
  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::SourceBuffer):
(WebCore::SourceBuffer::monitorBufferingRate):

  • Modules/mediasource/SourceBuffer.h:
  • Modules/speech/SpeechSynthesis.cpp:

(WebCore::SpeechSynthesis::startSpeakingImmediately):
(WebCore::SpeechSynthesis::fireEvent):

  • Modules/speech/SpeechSynthesisUtterance.h:
  • contentextensions/ContentExtensionCompiler.cpp:

(WebCore::ContentExtensions::compileRuleList):

  • contentextensions/ContentExtensionParser.cpp:

(WebCore::ContentExtensions::parseRuleList):

  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::ContentExtensionsBackend::actionsForResourceLoad const):

  • dom/Element.cpp:

(WebCore::Element::setActive):

  • history/CachedPage.cpp:

(WebCore::CachedPage::CachedPage):
(WebCore::CachedPage::hasExpired const):

  • history/CachedPage.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::startProgressEventTimer):
(WebCore::HTMLMediaElement::progressEventTimerFired):
(WebCore::HTMLMediaElement::refreshCachedTime const):
(WebCore::HTMLMediaElement::invalidateCachedTime const):
(WebCore::HTMLMediaElement::currentMediaTime const):
(WebCore::HTMLMediaElement::startPlaybackProgressTimer):

  • html/HTMLMediaElement.h:
  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::removeBehaviorRestriction):
(WebCore::MediaElementSession::mostRecentUserInteractionTime const):
(WebCore::MediaElementSession::resetPlaybackSessionState):

  • html/MediaElementSession.h:
  • html/parser/HTMLParserScheduler.cpp:

(WebCore::PumpSession::PumpSession):
(WebCore::HTMLParserScheduler::HTMLParserScheduler):

  • html/parser/HTMLParserScheduler.h:

(WebCore::HTMLParserScheduler::checkForYield):

  • inspector/InspectorCanvas.cpp:

(WebCore::InspectorCanvas::recordAction):
(WebCore::InspectorCanvas::finalizeFrame):

  • inspector/InspectorCanvas.h:
  • inspector/agents/InspectorMemoryAgent.cpp:

(WebCore::InspectorMemoryAgent::startTracking):
(WebCore::InspectorMemoryAgent::didHandleMemoryPressure):
(WebCore::InspectorMemoryAgent::collectSample):

  • inspector/agents/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::buildObjectForTiming):
(WebCore::InspectorNetworkAgent::timestamp):
(WebCore::InspectorNetworkAgent::didFinishLoading):

  • inspector/agents/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::timestamp):

  • inspector/agents/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::timestamp):

  • inspector/agents/WebHeapAgent.cpp:

(WebCore::WebHeapAgent::dispatchGarbageCollectedEvent):

  • inspector/agents/WebHeapAgent.h:
  • loader/cache/CachedCSSStyleSheet.cpp:

(WebCore::CachedCSSStyleSheet::restoreParsedStyleSheet):

  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::didDraw):

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::didAccessDecodedData):

  • loader/cache/CachedResource.h:
  • loader/cache/MemoryCache.cpp:

(WebCore::MemoryCache::pruneLiveResourcesToSize):

  • page/EventHandler.cpp:

(WebCore::MaximumDurationTracker::MaximumDurationTracker):
(WebCore::MaximumDurationTracker::~MaximumDurationTracker):

  • page/FocusController.cpp:

(WebCore::FocusController::setFocusedElement):
(WebCore::FocusController::timeSinceFocusWasSet const):

  • page/FocusController.h:
  • page/FrameView.cpp:

(WebCore::FrameView::reset):
(WebCore::FrameView::willPaintContents):
(WebCore::FrameView::didPaintContents):

  • page/FrameView.h:
  • page/animation/AnimationBase.cpp:

(WebCore::AnimationBase::freezeAtTime):
(WebCore::AnimationBase::beginAnimationUpdateTime const):

  • page/animation/AnimationBase.h:

(WebCore::AnimationBase::onAnimationStartResponse):

  • page/animation/CSSAnimationController.cpp:

(WebCore::CSSAnimationControllerPrivate::beginAnimationUpdateTime):
(WebCore::CSSAnimationControllerPrivate::receivedStartTimeResponse):
(WebCore::CSSAnimationControllerPrivate::startTimeResponse):
(WebCore::CSSAnimationController::notifyAnimationStarted):

  • page/animation/CSSAnimationController.h:
  • page/animation/CSSAnimationControllerPrivate.h:
  • page/mac/WheelEventDeltaFilterMac.h:
  • page/mac/WheelEventDeltaFilterMac.mm:

(WebCore::WheelEventDeltaFilterMac::beginFilteringDeltas):
(WebCore::WheelEventDeltaFilterMac::updateFromDelta):
(WebCore::WheelEventDeltaFilterMac::endFilteringDeltas):

  • platform/ControlStates.h:

(WebCore::ControlStates::timeSinceControlWasFocused const):
(WebCore::ControlStates::setTimeSinceControlWasFocused):

  • platform/PlatformSpeechSynthesisUtterance.h:

(WebCore::PlatformSpeechSynthesisUtterance::startTime const):
(WebCore::PlatformSpeechSynthesisUtterance::setStartTime):

  • platform/gamepad/PlatformGamepad.h:

(WebCore::PlatformGamepad::lastUpdateTime const):
(WebCore::PlatformGamepad::connectTime const):
(WebCore::PlatformGamepad::PlatformGamepad):

  • platform/gamepad/cocoa/GameControllerGamepad.mm:

(WebCore::GameControllerGamepad::setupAsExtendedGamepad):
(WebCore::GameControllerGamepad::setupAsGamepad):

  • platform/gamepad/mac/HIDGamepad.cpp:

(WebCore::HIDGamepad::HIDGamepad):
(WebCore::HIDGamepad::valueChanged):

  • platform/graphics/GraphicsLayer.cpp:

(WebCore::GraphicsLayer::suspendAnimations):

  • platform/graphics/GraphicsLayer.h:
  • platform/graphics/GraphicsLayerClient.h:

(WebCore::GraphicsLayerClient::notifyAnimationStarted):

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

(WebCore::LayerClient::platformCALayerAnimationStarted):
(WebCore::AVFWrapper::createImageForTimeInRect):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::createImageForTimeInRect):
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateLastImage):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::addAnimation):
(WebCore::GraphicsLayerCA::pauseAnimation):
(WebCore::GraphicsLayerCA::platformCALayerAnimationStarted):
(WebCore::GraphicsLayerCA::setAnimationOnLayer):
(WebCore::GraphicsLayerCA::pauseCAAnimationOnLayer):
(WebCore::GraphicsLayerCA::createAnimationFromKeyframes):
(WebCore::GraphicsLayerCA::appendToUncommittedAnimations):
(WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):

  • platform/graphics/ca/GraphicsLayerCA.h:

(WebCore::GraphicsLayerCA::LayerPropertyAnimation::LayerPropertyAnimation):
(WebCore::GraphicsLayerCA::AnimationProcessingAction::AnimationProcessingAction):

  • platform/graphics/ca/LayerPool.cpp:

(WebCore::LayerPool::LayerPool):
(WebCore::LayerPool::addLayer):
(WebCore::LayerPool::decayedCapacity const):
(WebCore::LayerPool::pruneTimerFired):

  • platform/graphics/ca/LayerPool.h:
  • platform/graphics/ca/PlatformCAAnimation.h:
  • platform/graphics/ca/PlatformCALayer.h:
  • platform/graphics/ca/PlatformCALayerClient.h:

(WebCore::PlatformCALayerClient::platformCALayerAnimationStarted):

  • platform/graphics/ca/TileGrid.cpp:

(WebCore::TileGrid::revalidateTiles):
(WebCore::TileGrid::startedNewCohort):
(WebCore::TileGrid::TileCohortInfo::timeUntilExpiration):
(WebCore::TileGrid::cohortRemovalTimerFired):

  • platform/graphics/ca/TileGrid.h:

(WebCore::TileGrid::TileCohortInfo::TileCohortInfo):

  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.h:
  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:

(mediaTimeToCurrentTime):
(-[WebAnimationDelegate animationDidStart:]):
(PlatformCALayerCocoa::animationStarted):

  • platform/graphics/ca/win/CACFLayerTreeHost.cpp:

(WebCore::CACFLayerTreeHost::notifyAnimationsStarted):

  • platform/graphics/ca/win/PlatformCALayerWin.cpp:

(PlatformCALayerWin::animationStarted):
(PlatformCALayerWin::layerTreeAsString const):

  • platform/graphics/ca/win/PlatformCALayerWin.h:
  • platform/graphics/cocoa/WebCoreDecompressionSession.mm:

(WebCore::WebCoreDecompressionSession::decodeSample):

  • platform/graphics/texmap/BitmapTexturePool.cpp:

(WebCore::BitmapTexturePool::releaseUnusedTexturesTimerFired):

  • platform/graphics/texmap/BitmapTexturePool.h:

(WebCore::BitmapTexturePool::Entry::markIsInUse):
(WebCore::BitmapTexturePool::Entry::canBeReleased const):
(): Deleted.

  • platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:

(WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
(WebCore::GraphicsLayerTextureMapper::addAnimation):
(WebCore::GraphicsLayerTextureMapper::pauseAnimation):

  • platform/graphics/texmap/GraphicsLayerTextureMapper.h:
  • platform/graphics/texmap/TextureMapperAnimation.cpp:

(WebCore::TextureMapperAnimation::TextureMapperAnimation):
(WebCore::TextureMapperAnimation::apply):
(WebCore::TextureMapperAnimation::pause):
(WebCore::TextureMapperAnimation::resume):
(WebCore::TextureMapperAnimation::computeTotalRunningTime):
(WebCore::TextureMapperAnimations::pause):
(WebCore::TextureMapperAnimations::suspend):

  • platform/graphics/texmap/TextureMapperAnimation.h:

(WebCore::TextureMapperAnimation::startTime const):
(WebCore::TextureMapperAnimation::pauseTime const):

  • platform/graphics/texmap/TextureMapperFPSCounter.cpp:

(WebCore::TextureMapperFPSCounter::TextureMapperFPSCounter):
(WebCore::TextureMapperFPSCounter::updateFPSAndDisplay):

  • platform/graphics/texmap/TextureMapperFPSCounter.h:
  • platform/graphics/texmap/TextureMapperPlatformLayerBuffer.h:

(WebCore::TextureMapperPlatformLayerBuffer::markUsed):
(WebCore::TextureMapperPlatformLayerBuffer::lastUsedTime const):
(): Deleted.

  • platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp:

(WebCore::TextureMapperPlatformLayerProxy::releaseUnusedBuffersTimerFired):

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::addAnimation):
(WebCore::CoordinatedGraphicsLayer::pauseAnimation):
(WebCore::CoordinatedGraphicsLayer::suspendAnimations):

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
  • platform/mediastream/RealtimeMediaSource.h:
  • platform/mediastream/RealtimeOutgoingVideoSource.cpp:

(WebCore::RealtimeOutgoingVideoSource::sendFrame):

  • platform/mediastream/libwebrtc/LibWebRTCAudioModule.cpp:

(WebCore::LibWebRTCAudioModule::StartPlayoutOnAudioThread):

  • platform/mediastream/mac/DisplayCaptureSourceCocoa.cpp:

(WebCore::DisplayCaptureSourceCocoa::startProducingData):
(WebCore::DisplayCaptureSourceCocoa::stopProducingData):
(WebCore::DisplayCaptureSourceCocoa::elapsedTime):

  • platform/mediastream/mac/DisplayCaptureSourceCocoa.h:
  • platform/mediastream/mac/MockRealtimeAudioSourceMac.h:
  • platform/mediastream/mac/MockRealtimeAudioSourceMac.mm:

(WebCore::MockRealtimeAudioSourceMac::render):

  • platform/mediastream/mac/MockRealtimeVideoSourceMac.mm:

(WebCore::MockRealtimeVideoSourceMac::CMSampleBufferFromPixelBuffer):

  • platform/mediastream/mac/ScreenDisplayCaptureSourceMac.h:
  • platform/mediastream/mac/ScreenDisplayCaptureSourceMac.mm:

(WebCore::ScreenDisplayCaptureSourceMac::sampleBufferFromPixelBuffer):
(WebCore::ScreenDisplayCaptureSourceMac::frameAvailable):

  • platform/mock/MockRealtimeAudioSource.cpp:

(WebCore::MockRealtimeAudioSource::startProducingData):
(WebCore::MockRealtimeAudioSource::stopProducingData):
(WebCore::MockRealtimeAudioSource::elapsedTime):
(WebCore::MockRealtimeAudioSource::tick):
(WebCore::MockRealtimeAudioSource::delaySamples):

  • platform/mock/MockRealtimeAudioSource.h:

(WebCore::MockRealtimeAudioSource::render):

  • platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::MockRealtimeVideoSource::startProducingData):
(WebCore::MockRealtimeVideoSource::stopProducingData):
(WebCore::MockRealtimeVideoSource::elapsedTime):
(WebCore::MockRealtimeVideoSource::drawText):
(WebCore::MockRealtimeVideoSource::delaySamples):
(WebCore::MockRealtimeVideoSource::generateFrame):

  • platform/mock/MockRealtimeVideoSource.h:
  • platform/network/DNSResolveQueue.cpp:

(WebCore::DNSResolveQueue::DNSResolveQueue):
(WebCore::DNSResolveQueue::isUsingProxy):

  • platform/network/DNSResolveQueue.h:
  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::suspendAnimations):

  • rendering/RenderBoxModelObject.h:
  • rendering/RenderElement.cpp:

(WebCore::RenderElement::paintFocusRing):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::paintAreaElementFocusRing):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::notifyAnimationStarted):
(WebCore::RenderLayerBacking::suspendAnimations):

  • rendering/RenderLayerBacking.h:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::didPaintBacking):

  • rendering/RenderProgress.cpp:

(WebCore::RenderProgress::RenderProgress):
(WebCore::RenderProgress::animationProgress const):
(WebCore::RenderProgress::updateAnimationState):

  • rendering/RenderProgress.h:
  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::animationDurationForProgressBar const):

  • rendering/RenderTheme.h:
  • rendering/RenderThemeGtk.cpp:

(WebCore::RenderThemeGtk::animationDurationForProgressBar const):

  • rendering/RenderThemeGtk.h:
  • rendering/RenderThemeIOS.h:
  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::animationDurationForProgressBar const):

  • rendering/RenderThemeMac.h:
  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::animationDurationForProgressBar const):

  • svg/animation/SMILTimeContainer.cpp:

(WebCore::SMILTimeContainer::SMILTimeContainer):
(WebCore::SMILTimeContainer::elapsed const):
(WebCore::SMILTimeContainer::isActive const):
(WebCore::SMILTimeContainer::isPaused const):
(WebCore::SMILTimeContainer::isStarted const):
(WebCore::SMILTimeContainer::begin):
(WebCore::SMILTimeContainer::pause):
(WebCore::SMILTimeContainer::resume):
(WebCore::SMILTimeContainer::setElapsed):
(WebCore::SMILTimeContainer::timerFired):

  • svg/animation/SMILTimeContainer.h:
  • testing/Internals.cpp:

(WebCore::Internals::delayMediaStreamTrackSamples):

  • testing/MockGamepad.cpp:

(WebCore::MockGamepad::MockGamepad):
(WebCore::MockGamepad::updateDetails):
(WebCore::MockGamepad::setAxisValue):
(WebCore::MockGamepad::setButtonValue):

Source/WebCore/PAL:

  • pal/system/ClockGeneric.cpp:

(PAL::ClockGeneric::currentTime const):
(PAL::ClockGeneric::now const):

  • pal/system/ClockGeneric.h:

Source/WebKit:

  • NetworkProcess/cache/CacheStorageEngineCache.cpp:

(WebKit::CacheStorage::Cache::toRecordInformation):

  • Platform/IPC/ArgumentCoders.cpp:

(IPC::ArgumentCoder<Seconds>::encode):
(IPC::ArgumentCoder<Seconds>::decode):
(IPC::ArgumentCoder<MonotonicTime>::encode):
(IPC::ArgumentCoder<MonotonicTime>::decode):

  • Platform/IPC/ArgumentCoders.h:
  • Shared/Gamepad/GamepadData.cpp:

(WebKit::GamepadData::GamepadData):

  • Shared/Gamepad/GamepadData.h:

(WebKit::GamepadData::lastUpdateTime const):

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<MonotonicTime>::encode): Deleted.
(IPC::ArgumentCoder<MonotonicTime>::decode): Deleted.
(IPC::ArgumentCoder<Seconds>::encode): Deleted.
(IPC::ArgumentCoder<Seconds>::decode): Deleted.
ArgumentCoders for MonotonicTime and Seconds are now used internally.
Move them to Platform/IPC/ArgumentCoders.h.

  • Shared/WebCoreArgumentCoders.h:
  • UIProcess/API/glib/IconDatabase.cpp:

(WebKit::IconDatabase::iconDatabaseSyncThread):

  • UIProcess/DrawingAreaProxyImpl.cpp:

(WebKit::DrawingAreaProxyImpl::DrawingMonitor::start):
(WebKit::DrawingAreaProxyImpl::DrawingMonitor::stop):
(WebKit::DrawingAreaProxyImpl::DrawingMonitor::didDraw):

  • UIProcess/DrawingAreaProxyImpl.h:
  • UIProcess/Gamepad/UIGamepad.h:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:

(WebKit::RemoteLayerTreeDrawingAreaProxy::acceleratedAnimationDidStart):

  • UIProcess/RemoteLayerTree/RemoteLayerTreeHost.h:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm:

(WebKit::RemoteLayerTreeHost::animationDidStart):

  • WebProcess/WebPage/DrawingArea.h:

(WebKit::DrawingArea::acceleratedAnimationDidStart):

  • WebProcess/WebPage/DrawingArea.messages.in:
  • WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.h:
  • WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm:

(mediaTimeToCurrentTime):
(-[WKAnimationDelegate animationDidStart:]):

  • WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp:

(WebKit::PlatformCALayerRemote::animationStarted):
This argument beginTime is not CFTimeInverval actually. We add currentTimeToMediaTime
conversion here to fix this issue.

  • WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.mm:

(WebKit::RemoteLayerTreeContext::animationDidStart):

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::acceleratedAnimationDidStart):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::destroyRenderingResources):

Source/WebKitLegacy/win:

  • FullscreenVideoController.cpp:

(FullscreenVideoController::LayerClient::platformCALayerAnimationStarted):

  • Plugins/PluginMessageThrottlerWin.cpp:

(WebCore::PluginMessageThrottlerWin::PluginMessageThrottlerWin):
(WebCore::PluginMessageThrottlerWin::appendMessage):

  • Plugins/PluginMessageThrottlerWin.h:
  • WebView.cpp:

(WebView::notifyAnimationStarted):

  • WebView.h:

Source/WTF:

This patch drops monotonicallyIncreasingTime and monotonicallyIncreasingTimeMS.
We have MonotonicTime API instead. This offers strongly typed MonotonicTime,
Seconds etc. This reduces the chance of bugs mixing doubles which represent milliseconds
and seconds.

Large part of this patch is mechanical one: replacing monotonicallyIncreasingTime with
MonotonicTime, using MonotonicTime and Seconds instead of raw doubles.

But this patch actually finds some bugs (but it is a bit difficult to show it as a test).
One is mixing media time (CACurrentMediaTime()) and MonotonicTime. Basically they are
super close because both uses mach_absolute_time(). But they would be slightly different.
So we should not mix them.

The second bug is GraphicsLayer::suspendAnimations(double). While CA ports (Apple, AppleWin,
iOS etc.) use this double as MonotonicTime, GTK and WPE use this double as Seconds (timeOffset).
This patch fixes it and now the signature becomes GraphicsLayer::suspendAnimations(MonotonicTime).

In this patch, we still uses bunch of double for Seconds. But fixing them at this patch increases
the size of this larger and larger. So some of them remains double. This should be fixed in
subsequent patches.

  • benchmarks/ConditionSpeedTest.cpp:
  • benchmarks/LockSpeedTest.cpp:
  • wtf/CurrentTime.cpp:

(WTF::MonotonicTime::now):
(WTF::monotonicallyIncreasingTime): Deleted.

  • wtf/CurrentTime.h:

(WTF::monotonicallyIncreasingTimeMS): Deleted.

  • wtf/MemoryPressureHandler.h:
  • wtf/MonotonicTime.cpp:

(WTF::MonotonicTime::now): Deleted.

  • wtf/MonotonicTime.h:
  • wtf/ParkingLot.cpp:
  • wtf/Seconds.h:

(WTF::Seconds::nan):

  • wtf/Stopwatch.h:

(WTF::Stopwatch::reset):
(WTF::Stopwatch::start):
(WTF::Stopwatch::stop):
(WTF::Stopwatch::elapsedTime):
(WTF::Stopwatch::elapsedTimeSince):

  • wtf/cocoa/MemoryPressureHandlerCocoa.mm:

(WTF::MemoryPressureHandler::holdOff):
(WTF::MemoryPressureHandler::respondToMemoryPressure):

  • wtf/linux/MemoryPressureHandlerLinux.cpp:

(WTF::MemoryPressureHandler::EventFDPoller::EventFDPoller):
(WTF::MemoryPressureHandler::holdOff):
(WTF::MemoryPressureHandler::respondToMemoryPressure):

  • wtf/win/MemoryPressureHandlerWin.cpp:

(WTF::MemoryPressureHandler::holdOff):

Location:
trunk/Source/JavaScriptCore/debugger
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/debugger/Debugger.cpp

    r226783 r229174  
    248248}
    249249
    250 double Debugger::willEvaluateScript()
     250Seconds Debugger::willEvaluateScript()
    251251{
    252252    return m_profilingClient->willEvaluateScript();
    253253}
    254254
    255 void Debugger::didEvaluateScript(double startTime, ProfilingReason reason)
     255void Debugger::didEvaluateScript(Seconds startTime, ProfilingReason reason)
    256256{
    257257    m_profilingClient->didEvaluateScript(startTime, reason);
  • trunk/Source/JavaScriptCore/debugger/Debugger.h

    r212448 r229174  
    141141        virtual ~ProfilingClient();
    142142        virtual bool isAlreadyProfiling() const = 0;
    143         virtual double willEvaluateScript() = 0;
    144         virtual void didEvaluateScript(double startTime, ProfilingReason) = 0;
     143        virtual Seconds willEvaluateScript() = 0;
     144        virtual void didEvaluateScript(Seconds startTime, ProfilingReason) = 0;
    145145    };
    146146
     
    148148    bool hasProfilingClient() const { return m_profilingClient != nullptr; }
    149149    bool isAlreadyProfiling() const { return m_profilingClient && m_profilingClient->isAlreadyProfiling(); }
    150     double willEvaluateScript();
    151     void didEvaluateScript(double startTime, ProfilingReason);
     150    Seconds willEvaluateScript();
     151    void didEvaluateScript(Seconds startTime, ProfilingReason);
    152152
    153153protected:
  • trunk/Source/JavaScriptCore/debugger/ScriptProfilingScope.h

    r208985 r229174  
    8484
    8585    JSGlobalObject* m_globalObject { nullptr };
    86     std::optional<double> m_startTime;
     86    std::optional<Seconds> m_startTime;
    8787    ProfilingReason m_reason;
    8888};
Note: See TracChangeset for help on using the changeset viewer.