WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
187316
Youtube video pages crash after a couple of minutes
https://bugs.webkit.org/show_bug.cgi?id=187316
Summary
Youtube video pages crash after a couple of minutes
Ryosuke Niwa
Reported
2018-07-04 00:50:31 PDT
We hit a crash like this: Thread 0 Crashed:: Dispatch queue: com.apple.main-thread 0 com.apple.WebCore 0x00007fff3d076004 WebCore::Document::updateLayout() + 116 1 com.apple.WebCore 0x00007fff3d13297e WebCore::RenderView::hitTest(WebCore::HitTestRequest const&, WebCore::HitTestLocation const&, WebCore::HitTestResult&) + 46 2 com.apple.WebCore 0x00007fff3df48b26 WebCore::MediaElementSession::updateIsMainContent() const + 518 3 com.apple.WebCore 0x00007fff3df48367 WebCore::MediaElementSession::playbackPermitted() const + 199 4 com.apple.WebCore 0x00007fff3df4931a WebCore::MediaElementSession::canShowControlsManager(WebCore::MediaElementSession::PlaybackControlsPurpose) const + 794 5 com.apple.WebCore 0x00007fff3decb910 WebCore::HTMLMediaElement::bestMediaElementForShowingPlaybackControlsManager(WebCore::MediaElementSession::PlaybackControlsPurpose) + 208 6 com.apple.WebCore 0x00007fff3dedb242 WebCore::HTMLMediaElement::stopWithoutDestroyingMediaPlayer() + 210 7 com.apple.WebCore 0x00007fff3d115ee8 WebCore::HTMLMediaElement::stop() + 120 8 com.apple.WebCore 0x00007fff3d03c0de WebCore::ScriptExecutionContext::stopActiveDOMObjects() + 494 9 com.apple.WebCore 0x00007fff3d03b93b WebCore::Document::prepareForDestruction() + 763 10 com.apple.WebCore 0x00007fff3e0f1915 WebCore::Frame::setView(WTF::RefPtr<WebCore::FrameView, WTF::DumbPtrTraits<WebCore::FrameView> >&&) + 245 11 com.apple.WebCore 0x00007fff3d0899a4 WebCore::FrameLoader::detachFromParent() + 436 12 com.apple.WebCore 0x00007fff3cffe59f WebCore::FrameLoader::detachChildren() + 351 13 com.apple.WebCore 0x00007fff3d089885 WebCore::FrameLoader::detachFromParent() + 149 14 com.apple.WebCore 0x00007fff3d0cdcc4 WebCore::FrameLoader::frameDetached() + 196 15 com.apple.WebCore 0x00007fff3d0cdbb3 WebCore::HTMLFrameOwnerElement::disconnectContentFrame() + 35 16 com.apple.WebCore 0x00007fff3dd2bdc8 WebCore::disconnectSubframes(WebCore::ContainerNode&, WebCore::SubframeDisconnectPolicy) + 216 17 com.apple.WebCore 0x00007fff3dd28659 WebCore::ContainerNode::removeChild(WebCore::Node&) + 217 18 com.apple.WebCore 0x00007fff3dd94bdb WebCore::Node::removeChild(WebCore::Node&) + 43 19 com.apple.WebCore 0x00007fff3d08377e WebCore::jsNodePrototypeFunctionRemoveChild(JSC::ExecState*) + 238 <
rdar://problem/41538778
>
Attachments
Fixes the crash
(17.43 KB, patch)
2018-07-04 01:08 PDT
,
Ryosuke Niwa
no flags
Details
Formatted Diff
Diff
Fixes the crash
(16.22 KB, patch)
2018-07-04 01:09 PDT
,
Ryosuke Niwa
no flags
Details
Formatted Diff
Diff
Archive of layout-test-results from ews206 for win-future
(12.83 MB, application/zip)
2018-07-04 07:06 PDT
,
EWS Watchlist
no flags
Details
Patch for landing
(15.20 KB, patch)
2018-07-05 17:06 PDT
,
Ryosuke Niwa
no flags
Details
Formatted Diff
Diff
Show Obsolete
(3)
View All
Add attachment
proposed patch, testcase, etc.
Ryosuke Niwa
Comment 1
2018-07-04 01:08:42 PDT
Created
attachment 344266
[details]
Fixes the crash
Ryosuke Niwa
Comment 2
2018-07-04 01:09:36 PDT
Created
attachment 344267
[details]
Fixes the crash
EWS Watchlist
Comment 3
2018-07-04 01:12:09 PDT
Attachment 344267
[details]
did not pass style-queue: ERROR: Source/WebCore/testing/Internals.h:707: 'bestMediaElementForShowingPlaybackControlsManager' is incorrectly named. It should be named 'protector' or 'protectedPlaybackControlsPurpose'. [readability/naming/protected] [4] Total errors found: 1 in 11 files If any of these errors are false positives, please file a bug against check-webkit-style.
EWS Watchlist
Comment 4
2018-07-04 07:06:36 PDT
Comment on
attachment 344267
[details]
Fixes the crash
Attachment 344267
[details]
did not pass win-ews (win): Output:
https://webkit-queues.webkit.org/results/8436025
New failing tests: http/tests/security/contentSecurityPolicy/video-with-https-url-allowed-by-csp-media-src-star.html http/tests/preload/onload_event.html
EWS Watchlist
Comment 5
2018-07-04 07:06:48 PDT
Created
attachment 344284
[details]
Archive of layout-test-results from ews206 for win-future The attached test failures were seen while running run-webkit-tests on the win-ews. Bot: ews206 Port: win-future Platform: CYGWIN_NT-6.1-2.9.0-0.318-5-3-x86_64-64bit
Antti Koivisto
Comment 6
2018-07-04 09:27:54 PDT
Comment on
attachment 344267
[details]
Fixes the crash View in context:
https://bugs.webkit.org/attachment.cgi?id=344267&action=review
> Source/WebCore/html/HTMLMediaElement.cpp:7891 > +void HTMLMediaElement::scheduleUpdatePlaybackControlsManager()
schedulePlaybackControlsManagerUpdate would read better (and not be randomly different from the Page version).
Eric Carlson
Comment 7
2018-07-05 07:15:22 PDT
Comment on
attachment 344267
[details]
Fixes the crash View in context:
https://bugs.webkit.org/attachment.cgi?id=344267&action=review
> Source/WebCore/page/Page.h:856 > + Timer m_playbackControlsManagerUpdateTimer;
Nit: If you use a std::unique_ptr<DeferrableOneShotTimer>, the timer can be allocated lazily and you can use a lambda instead of adding a method for the fire proc (see PlatformMediaSessionManager::scheduleUpdateSessionState for an example).
Ryosuke Niwa
Comment 8
2018-07-05 13:33:42 PDT
(In reply to Eric Carlson from
comment #7
)
> Comment on
attachment 344267
[details]
> Fixes the crash > > View in context: >
https://bugs.webkit.org/attachment.cgi?id=344267&action=review
> > > Source/WebCore/page/Page.h:856 > > + Timer m_playbackControlsManagerUpdateTimer; > > Nit: If you use a std::unique_ptr<DeferrableOneShotTimer>, the timer can be > allocated lazily and you can use a lambda instead of adding a method for the > fire proc (see PlatformMediaSessionManager::scheduleUpdateSessionState for > an example).
That's a good idea. Will do that.
Ryosuke Niwa
Comment 9
2018-07-05 14:02:50 PDT
Committed
r233539
: <
https://trac.webkit.org/changeset/233539
>
WebKit Commit Bot
Comment 10
2018-07-05 16:08:49 PDT
Re-opened since this is blocked by
bug 187368
Ryosuke Niwa
Comment 11
2018-07-05 17:06:33 PDT
Created
attachment 344382
[details]
Patch for landing
Ryosuke Niwa
Comment 12
2018-07-05 17:10:13 PDT
Comment on
attachment 344382
[details]
Patch for landing Wait for EWS
EWS Watchlist
Comment 13
2018-07-05 17:12:29 PDT
Attachment 344382
[details]
did not pass style-queue: ERROR: Source/WebCore/testing/Internals.h:707: 'bestMediaElementForShowingPlaybackControlsManager' is incorrectly named. It should be named 'protector' or 'protectedPlaybackControlsPurpose'. [readability/naming/protected] [4] Total errors found: 1 in 11 files If any of these errors are false positives, please file a bug against check-webkit-style.
Ryosuke Niwa
Comment 14
2018-07-05 19:30:46 PDT
Comment on
attachment 344382
[details]
Patch for landing Actually, it's odd to use DeferrableOneShotTimer here since we never defer this timer. We can just use std::optional<Timer> instead. There is negligible cost to creating a timer per page anyway so I'd just go with the original patch.
Ryosuke Niwa
Comment 15
2018-07-05 20:20:22 PDT
Committed
r233560
: <
https://trac.webkit.org/changeset/233560
>
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug