Bug 187237

Summary: STP 59: On united.com, WebContent process uses 100% CPU in WebAnimation code
Product: WebKit Reporter: Ryosuke Niwa <rniwa>
Component: AnimationsAssignee: Nobody <webkit-unassigned>
Status: RESOLVED CONFIGURATION CHANGED    
Severity: Normal CC: ap, dino, graouts, jonlee, koivisto, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: Safari Technology Preview   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
sample none

Description Ryosuke Niwa 2018-07-01 14:11:58 PDT
Created attachment 344060 [details]
sample

The search result page on united.com (e.g. I looked for a business flight from SFO to Lyon, France from 10/22 to 10/28) causes WebContent process to use 100% CPU as long as the page is visible.

Call graph:
    1139 Thread_173677   DispatchQueue_1: com.apple.main-thread  (serial)
    + 1138 start  (in libdyld.dylib) + 1  [0x7fff68394015]
    + ! 1138 ???  (in com.apple.WebKit.WebContent)  load address 0x1074d1000 + 0x16a1  [0x1074d26a1]
    + !   1138 xpc_main  (in libxpc.dylib) + 433  [0x7fff686eda1a]
    + !     1138 _xpc_objc_main  (in libxpc.dylib) + 580  [0x7fff686eedc7]
    + !       1138 NSApplicationMain  (in AppKit) + 804  [0x7fff3da3fa72]
    + !         1138 -[NSApplication run]  (in AppKit) + 764  [0x7fff3da70885]
    + !           1138 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:]  (in AppKit) + 3044  [0x7fff3e211e34]
    + !             1138 _DPSNextEvent  (in AppKit) + 2085  [0x7fff3da7ba73]
    + !               1138 _BlockUntilNextEventMatchingListInModeWithFilter  (in HIToolbox) + 64  [0x7fff3f7c9884]
    + !                 1138 ReceiveNextEventCommon  (in HIToolbox) + 613  [0x7fff3f7c9b06]
    + !                   1138 RunCurrentEventLoopInMode  (in HIToolbox) + 286  [0x7fff3f7c9d96]
    + !                     1137 CFRunLoopRunSpecific  (in CoreFoundation) + 487  [0x7fff404eda07]
    + !                     : 765 __CFRunLoopRun  (in CoreFoundation) + 2427  [0x7fff404ee61b]
    + !                     : | 684 __CFRunLoopDoTimers  (in CoreFoundation) + 346  [0x7fff404f6e7a]
    + !                     : | + 496 __CFRunLoopDoTimer  (in CoreFoundation) + 1108  [0x7fff404f7384]
    + !                     : | + ! 496 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__  (in CoreFoundation) + 20  [0x7fff404f7704]
    + !                     : | + !   482 WebCore::timerFired(__CFRunLoopTimer*, void*)  (in WebCore) + 31  [0x1082347af]
    + !                     : | + !   : 391 WebCore::ThreadTimers::sharedTimerFiredInternal()  (in WebCore) + 176  [0x108234870]
    + !                     : | + !   : | 300 WebCore::TaskDispatcher<WebCore::Timer>::sharedTimerFired()  (in WebCore) + 346  [0x109331afa]
    + !                     : | + !   : | + 280 WebCore::DocumentTimeline::performInvalidationTask()  (in WebCore) + 70  [0x108cf4426]
    + !                     : | + !   : | + ! 256 WebCore::DeclarativeAnimation::invalidateDOMEvents(WTF::Seconds)  (in WebCore) + 71  [0x108cf0047]
    + !                     : | + !   : | + ! : 163 WebCore::AnimationEffectReadOnly::currentIteration() const  (in WebCore) + 28  [0x108ceadec]
    + !                     : | + !   : | + ! : | 159 WebCore::AnimationEffectReadOnly::activeTime() const  (in WebCore) + 25  [0x108ceaa59]
    + !                     : | + !   : | + ! : | + 146 WebCore::AnimationEffectReadOnly::phase() const  (in WebCore) + 207  [0x108cea8df]
    + !                     : | + !   : | + ! : | + ! 138 WebCore::WebAnimation::currentTime() const  (in WebCore) + 64  [0x108cfc020]
    + !                     : | + !   : | + ! : | + ! : 127 WebCore::DocumentTimeline::currentTime()  (in WebCore) + 231  [0x108cf4397]
    + !                     : | + !   : | + ! : | + ! : | 121 WebCore::GenericTaskQueue<WebCore::Timer>::enqueueTask(WTF::Function<void ()>&&)  (in WebCore) + 155  [0x1086a6b5b]
    + !                     : | + !   : | + ! : | + ! : | + 107 WebCore::TimerBase::setNextFireTime(WTF::MonotonicTime)  (in WebCore) + 224  [0x109348c40]
    + !                     : | + !   : | + ! : | + ! : | + ! 41 CFRunLoopTimerSetNextFireDate  (in CoreFoundation) + 537  [0x7fff405022c9]
Comment 1 Radar WebKit Bug Importer 2018-07-02 00:25:23 PDT
<rdar://problem/41712556>
Comment 2 Antoine Quint 2018-07-20 10:51:06 PDT
I'm not reproducing with STP 61 with the steps outlined. I'm on the results page where a variety of flights are listed and Activity Monitor is reporting a model 10% CPU. Ryosuke, can you try to reproduce with STP 61?
Comment 3 Ryosuke Niwa 2018-07-20 19:36:31 PDT
Yup, not reproducing anymore.