Merge pull request #13638 from jherico/fix/fb16762

Fix for audio continuing on destroyed Web 3D overlays
This commit is contained in:
Sam Gondelman 2018-07-19 13:33:18 -07:00 committed by GitHub
commit 74a49dc14f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -138,11 +138,8 @@ void Web3DOverlay::destroyWebSurface() {
// Fix for crash in QtWebEngineCore when rapidly switching domains
// Call stop on the QWebEngineView before destroying OffscreenQMLSurface.
if (rootItem) {
QObject* obj = rootItem->findChild<QObject*>("webEngineView");
if (obj) {
// stop loading
QMetaObject::invokeMethod(obj, "stop");
}
// stop loading
QMetaObject::invokeMethod(rootItem, "stop");
}
_webSurface->pause();
@ -152,6 +149,11 @@ void Web3DOverlay::destroyWebSurface() {
// If the web surface was fetched out of the cache, release it back into the cache
if (_cachedWebSurface) {
// If it's going back into the cache make sure to explicitly set the URL to a blank page
// in order to stop any resource consumption or audio related to the page.
if (rootItem) {
rootItem->setProperty("url", "about:blank");
}
auto offscreenCache = DependencyManager::get<OffscreenQmlSurfaceCache>();
// FIXME prevents crash on shutdown, but we shoudln't have to do this check
if (offscreenCache) {