Modified: trunk/Source/WebKit/ChangeLog (286080 => 286081)
--- trunk/Source/WebKit/ChangeLog 2021-11-19 22:38:00 UTC (rev 286080)
+++ trunk/Source/WebKit/ChangeLog 2021-11-19 22:41:30 UTC (rev 286081)
@@ -1,3 +1,18 @@
+2021-11-19 Antoine Quint <[email protected]>
+
+ [Model] Reduce use of callOnMainRunLoop in ModelElementControllerCocoa
+ https://bugs.webkit.org/show_bug.cgi?id=233376
+
+ Reviewed by Wenson Hsieh.
+
+ We only need to use callOnMainRunLoop inside of blocks.
+
+ * UIProcess/Cocoa/ModelElementControllerCocoa.mm:
+ (WebKit::ModelElementController::getCameraForModelElement):
+ (WebKit::ModelElementController::setCameraForModelElement):
+ (WebKit::ModelElementController::isPlayingAnimationForModelElement):
+ (WebKit::ModelElementController::setAnimationIsPlayingForModelElement):
+
2021-11-19 Chris Dumez <[email protected]>
Revert r282446 to bring back support for WebKitAdditions in Framework headers
Modified: trunk/Source/WebKit/UIProcess/Cocoa/ModelElementControllerCocoa.mm (286080 => 286081)
--- trunk/Source/WebKit/UIProcess/Cocoa/ModelElementControllerCocoa.mm 2021-11-19 22:38:00 UTC (rev 286080)
+++ trunk/Source/WebKit/UIProcess/Cocoa/ModelElementControllerCocoa.mm 2021-11-19 22:41:30 UTC (rev 286081)
@@ -246,10 +246,7 @@
{
auto* preview = previewForModelIdentifier(modelIdentifier);
if (!previewHasCameraSupport(preview)) {
- callOnMainRunLoop([weakThis = WeakPtr { *this }, completionHandler = WTFMove(completionHandler), error = WebCore::ResourceError { WebCore::ResourceError::Type::General }] () mutable {
- if (weakThis)
- completionHandler(makeUnexpected(error));
- });
+ completionHandler(makeUnexpected(WebCore::ResourceError { WebCore::ResourceError::Type::General }));
return;
}
@@ -256,9 +253,9 @@
#if ENABLE(ARKIT_INLINE_PREVIEW_CAMERA_TRANSFORM)
[preview getCameraTransform:makeBlockPtr([weakThis = WeakPtr { *this }, completionHandler = WTFMove(completionHandler)] (simd_float3 cameraTransform, NSError *error) mutable {
if (error) {
- callOnMainRunLoop([weakThis = WTFMove(weakThis), completionHandler = WTFMove(completionHandler), error = WebCore::ResourceError { WebCore::ResourceError::Type::General }] () mutable {
+ callOnMainRunLoop([weakThis = WTFMove(weakThis), completionHandler = WTFMove(completionHandler)] () mutable {
if (weakThis)
- completionHandler(makeUnexpected(error));
+ completionHandler(makeUnexpected(WebCore::ResourceError { WebCore::ResourceError::Type::General }));
});
return;
}
@@ -269,11 +266,7 @@
});
}).get()];
#else
- callOnMainRunLoop([weakThis = WeakPtr { *this }, completionHandler = WTFMove(completionHandler), error = WebCore::ResourceError { WebCore::ResourceError::Type::General }] () mutable {
- if (weakThis)
- completionHandler(makeUnexpected(error));
- });
- return;
+ ASSERT_NOT_REACHED();
#endif
}
@@ -281,25 +274,16 @@
{
auto* preview = previewForModelIdentifier(modelIdentifier);
if (!previewHasCameraSupport(preview)) {
- callOnMainRunLoop([weakThis = WeakPtr { *this }, completionHandler = WTFMove(completionHandler)] () mutable {
- if (weakThis)
- completionHandler(false);
- });
+ completionHandler(false);
return;
}
#if ENABLE(ARKIT_INLINE_PREVIEW_CAMERA_TRANSFORM)
[preview setCameraTransform:simd_make_float3(camera.pitch, camera.yaw, camera.scale)];
-#endif
-
- callOnMainRunLoop([weakThis = WeakPtr { *this }, completionHandler = WTFMove(completionHandler)] () mutable {
- if (weakThis)
-#if ENABLE(ARKIT_INLINE_PREVIEW_CAMERA_TRANSFORM)
- completionHandler(true);
+ completionHandler(true);
#else
- completionHandler(false);
+ ASSERT_NOT_REACHED();
#endif
- });
}
static bool previewHasAnimationSupport(ASVInlinePreview *preview)
@@ -315,22 +299,15 @@
{
auto* preview = previewForModelIdentifier(modelIdentifier);
if (!previewHasAnimationSupport(preview)) {
- callOnMainRunLoop([weakThis = WeakPtr { *this }, completionHandler = WTFMove(completionHandler), error = WebCore::ResourceError { WebCore::ResourceError::Type::General }] () mutable {
- if (weakThis)
- completionHandler(makeUnexpected(error));
- });
+ completionHandler(makeUnexpected(WebCore::ResourceError { WebCore::ResourceError::Type::General }));
return;
}
#if ENABLE(ARKIT_INLINE_PREVIEW_ANIMATIONS_CONTROL)
- auto isPlaying = [preview isPlaying];
+ completionHandler([preview isPlaying]);
#else
- auto isPlaying = false;
+ ASSERT_NOT_REACHED();
#endif
- callOnMainRunLoop([isPlaying, weakThis = WeakPtr { *this }, completionHandler = WTFMove(completionHandler)] () mutable {
- if (weakThis)
- completionHandler(isPlaying);
- });
}
void ModelElementController::setAnimationIsPlayingForModelElement(ModelIdentifier modelIdentifier, bool isPlaying, CompletionHandler<void(bool)>&& completionHandler)
@@ -337,10 +314,7 @@
{
auto* preview = previewForModelIdentifier(modelIdentifier);
if (!previewHasAnimationSupport(preview)) {
- callOnMainRunLoop([weakThis = WeakPtr { *this }, completionHandler = WTFMove(completionHandler)] () mutable {
- if (weakThis)
- completionHandler(false);
- });
+ completionHandler(false);
return;
}
@@ -352,10 +326,7 @@
});
}).get()];
#else
- callOnMainRunLoop([weakThis = WeakPtr { *this }, completionHandler = WTFMove(completionHandler)] () mutable {
- if (weakThis)
- completionHandler(false);
- });
+ ASSERT_NOT_REACHED();
#endif
}