Title: [286349] trunk/Source/WebCore
- Revision
- 286349
- Author
- [email protected]
- Date
- 2021-11-30 22:11:56 -0800 (Tue, 30 Nov 2021)
Log Message
Null check value returned by WorkerOrWorkletGlobalScope::script()
https://bugs.webkit.org/show_bug.cgi?id=233655
Reviewed by Darin Adler.
Null check value returned by WorkerOrWorkletGlobalScope::script() since it can in theory be null
(it gets cleared in prepareForDestruction()).
* bindings/js/JSDOMConvertPromise.h:
(WebCore::Converter<IDLPromise<T>>::convert):
* bindings/js/JSDOMPromiseDeferred.cpp:
(WebCore::DeferredPromise::handleTerminationExceptionIfNeeded):
* bindings/js/JSEventListener.cpp:
(WebCore::JSEventListener::handleEvent):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (286348 => 286349)
--- trunk/Source/WebCore/ChangeLog 2021-12-01 05:29:56 UTC (rev 286348)
+++ trunk/Source/WebCore/ChangeLog 2021-12-01 06:11:56 UTC (rev 286349)
@@ -1,3 +1,20 @@
+2021-11-30 Chris Dumez <[email protected]>
+
+ Null check value returned by WorkerOrWorkletGlobalScope::script()
+ https://bugs.webkit.org/show_bug.cgi?id=233655
+
+ Reviewed by Darin Adler.
+
+ Null check value returned by WorkerOrWorkletGlobalScope::script() since it can in theory be null
+ (it gets cleared in prepareForDestruction()).
+
+ * bindings/js/JSDOMConvertPromise.h:
+ (WebCore::Converter<IDLPromise<T>>::convert):
+ * bindings/js/JSDOMPromiseDeferred.cpp:
+ (WebCore::DeferredPromise::handleTerminationExceptionIfNeeded):
+ * bindings/js/JSEventListener.cpp:
+ (WebCore::JSEventListener::handleEvent):
+
2021-11-30 Mark Lam <[email protected]>
Move Subspaces from VM to Heap.
Modified: trunk/Source/WebCore/bindings/js/JSDOMConvertPromise.h (286348 => 286349)
--- trunk/Source/WebCore/bindings/js/JSDOMConvertPromise.h 2021-12-01 05:29:56 UTC (rev 286348)
+++ trunk/Source/WebCore/bindings/js/JSDOMConvertPromise.h 2021-12-01 06:11:56 UTC (rev 286349)
@@ -51,10 +51,10 @@
if (scope.exception()) {
auto* scriptExecutionContext = globalObject->scriptExecutionContext();
if (is<WorkerGlobalScope>(scriptExecutionContext)) {
- auto& scriptController = *downcast<WorkerGlobalScope>(*scriptExecutionContext).script();
+ auto* scriptController = downcast<WorkerGlobalScope>(*scriptExecutionContext).script();
bool terminatorCausedException = vm.isTerminationException(scope.exception());
- if (terminatorCausedException || scriptController.isTerminatingExecution()) {
- scriptController.forbidExecution();
+ if (terminatorCausedException || (scriptController && scriptController->isTerminatingExecution())) {
+ scriptController->forbidExecution();
return nullptr;
}
}
Modified: trunk/Source/WebCore/bindings/js/JSDOMPromiseDeferred.cpp (286348 => 286349)
--- trunk/Source/WebCore/bindings/js/JSDOMPromiseDeferred.cpp 2021-12-01 05:29:56 UTC (rev 286348)
+++ trunk/Source/WebCore/bindings/js/JSDOMPromiseDeferred.cpp 2021-12-01 06:11:56 UTC (rev 286349)
@@ -274,10 +274,10 @@
auto& scriptExecutionContext = *lexicalGlobalObject.scriptExecutionContext();
if (is<WorkerGlobalScope>(scriptExecutionContext)) {
- auto& scriptController = *downcast<WorkerGlobalScope>(scriptExecutionContext).script();
+ auto* scriptController = downcast<WorkerGlobalScope>(scriptExecutionContext).script();
bool terminatorCausedException = vm.isTerminationException(exception);
- if (terminatorCausedException || scriptController.isTerminatingExecution()) {
- scriptController.forbidExecution();
+ if (terminatorCausedException || (scriptController && scriptController->isTerminatingExecution())) {
+ scriptController->forbidExecution();
return true;
}
}
Modified: trunk/Source/WebCore/bindings/js/JSEventListener.cpp (286348 => 286349)
--- trunk/Source/WebCore/bindings/js/JSEventListener.cpp 2021-12-01 05:29:56 UTC (rev 286348)
+++ trunk/Source/WebCore/bindings/js/JSEventListener.cpp 2021-12-01 06:11:56 UTC (rev 286349)
@@ -195,10 +195,10 @@
auto handleExceptionIfNeeded = [&] (JSC::Exception* exception) -> bool {
if (is<WorkerGlobalScope>(scriptExecutionContext)) {
- auto& scriptController = *downcast<WorkerGlobalScope>(scriptExecutionContext).script();
+ auto* scriptController = downcast<WorkerGlobalScope>(scriptExecutionContext).script();
bool terminatorCausedException = (exception && vm.isTerminationException(exception));
- if (terminatorCausedException || scriptController.isTerminatingExecution())
- scriptController.forbidExecution();
+ if (terminatorCausedException || (scriptController && scriptController->isTerminatingExecution()))
+ scriptController->forbidExecution();
}
if (exception) {
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes