| 559 | _anrDetector->setMetrics(metrics); |
| 560 | } |
| 561 | |
| 562 | void RuntimeManager::setTweakValueProvider(const Shared<ITweakValueProvider>& tweakValueProvider) { |
| 563 | std::vector<SharedRuntime> runtimes; |
| 564 | Ref<ValdiRuntimeTweaks> runtimeTweaks; |
| 565 | |
| 566 | if (tweakValueProvider != nullptr) { |
| 567 | runtimeTweaks = makeShared<ValdiRuntimeTweaks>(tweakValueProvider); |
| 568 | } |
| 569 | |
| 570 | { |
| 571 | std::lock_guard<Mutex> guard(_mutex); |
| 572 | _runtimeTweaks = runtimeTweaks; |
| 573 | runtimes = getAllRuntimes(guard); |
| 574 | } |
| 575 | |
| 576 | auto anrDetectorListener = castOrNull<ANRDetectorListener>(_anrDetector->getListener()); |
| 577 | |
| 578 | if (anrDetectorListener != nullptr) { |
| 579 | anrDetectorListener->setShouldCrashOnANR(runtimeTweaks != nullptr ? runtimeTweaks->shouldCrashOnANR() : false); |
| 580 | } |
| 581 | _anrDetector->setNudgeEnabled(runtimeTweaks != nullptr ? runtimeTweaks->shouldNudgeJSThread() : false); |
| 582 | |
| 583 | YGConfigSetExperimentalFeatureEnabled(_yogaConfig.get(), |
| 584 | YGExperimentalFeatureFixFlexBasisFitContent, |
| 585 | runtimeTweaks != nullptr ? runtimeTweaks->enableFixFlexBasisFitContent() : |
| 586 | false); |
| 587 | |
| 588 | auto disableAnimationRemoveOnCompleteIos = |
| 589 | runtimeTweaks != nullptr ? runtimeTweaks->disableAnimationRemoveOnCompleteIos() : false; |
| 590 | for (const auto& viewManagerContext : _viewManagerContexts) { |
| 591 | viewManagerContext->getViewManager().setDisableAnimationRemoveOnCompleteIos( |
| 592 | disableAnimationRemoveOnCompleteIos); |
| 593 | } |
| 594 | |
| 595 | for (const auto& runtime : runtimes) { |
| 596 | runtime->setRuntimeTweaks(runtimeTweaks); |
| 597 | } |
| 598 | } |
| 599 | |
| 600 | void RuntimeManager::cancelDeferredGCTask() { |
no test coverage detected