From a1da8783dc19350d5fc6ea49e5c54d5696fdd84d Mon Sep 17 00:00:00 2001 From: NDevTK <31563761+NDevTK@users.noreply.github.com> Date: Tue, 11 Jun 2024 21:54:11 +0100 Subject: [PATCH 01/16] Update embed.dart --- pkgs/dartpad_ui/lib/embed.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/dartpad_ui/lib/embed.dart b/pkgs/dartpad_ui/lib/embed.dart index 1617c25a0..9a3fcffa1 100644 --- a/pkgs/dartpad_ui/lib/embed.dart +++ b/pkgs/dartpad_ui/lib/embed.dart @@ -13,6 +13,7 @@ void handleEmbedMessage(AppModel model) { web.window.addEventListener( 'message', (web.MessageEvent event) { + if (event.source !== web.window.parent) return; if (event.data case _SourceCodeMessage(:final type?, :final sourceCode?) when type == 'sourceCode') { if (sourceCode.isNotEmpty) { From 1deaad5f4197a807e4886f70af45bda680603efd Mon Sep 17 00:00:00 2001 From: NDevTK <31563761+NDevTK@users.noreply.github.com> Date: Tue, 11 Jun 2024 22:34:42 +0100 Subject: [PATCH 02/16] Update embed.dart --- pkgs/dartpad_ui/lib/embed.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/dartpad_ui/lib/embed.dart b/pkgs/dartpad_ui/lib/embed.dart index 9a3fcffa1..3d067d326 100644 --- a/pkgs/dartpad_ui/lib/embed.dart +++ b/pkgs/dartpad_ui/lib/embed.dart @@ -13,7 +13,7 @@ void handleEmbedMessage(AppModel model) { web.window.addEventListener( 'message', (web.MessageEvent event) { - if (event.source !== web.window.parent) return; + if (event.source != web.window.parent) return; if (event.data case _SourceCodeMessage(:final type?, :final sourceCode?) when type == 'sourceCode') { if (sourceCode.isNotEmpty) { From d1a0ea8432d17a3278c952a195a0b2ab0225e0e3 Mon Sep 17 00:00:00 2001 From: NDevTK <31563761+NDevTK@users.noreply.github.com> Date: Wed, 12 Jun 2024 00:29:24 +0100 Subject: [PATCH 03/16] Verify sender of log message --- pkgs/dartpad_ui/lib/execution/frame.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/dartpad_ui/lib/execution/frame.dart b/pkgs/dartpad_ui/lib/execution/frame.dart index f54df1f58..bc7fd62ef 100644 --- a/pkgs/dartpad_ui/lib/execution/frame.dart +++ b/pkgs/dartpad_ui/lib/execution/frame.dart @@ -165,7 +165,7 @@ require(["dartpad_main", "dart_sdk"], function(dartpad_main, dart_sdk) { (web.Event event) { if (event is web.MessageEvent) { final data = event.data.dartify() as Map; - if (data['sender'] != 'frame') { + if (data['sender'] != 'frame' || !_frame || event.source != _frame) { return; } final type = data['type'] as String?; From 940f7b237fbebbcc93ce0bbc86ead893ac6b8dc0 Mon Sep 17 00:00:00 2001 From: NDevTK <31563761+NDevTK@users.noreply.github.com> Date: Wed, 12 Jun 2024 00:36:49 +0100 Subject: [PATCH 04/16] Same window --- pkgs/dartpad_ui/lib/execution/frame.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/dartpad_ui/lib/execution/frame.dart b/pkgs/dartpad_ui/lib/execution/frame.dart index bc7fd62ef..97aa6dd28 100644 --- a/pkgs/dartpad_ui/lib/execution/frame.dart +++ b/pkgs/dartpad_ui/lib/execution/frame.dart @@ -165,7 +165,7 @@ require(["dartpad_main", "dart_sdk"], function(dartpad_main, dart_sdk) { (web.Event event) { if (event is web.MessageEvent) { final data = event.data.dartify() as Map; - if (data['sender'] != 'frame' || !_frame || event.source != _frame) { + if (data['sender'] != 'frame' || event.source.top != web.window.top) { return; } final type = data['type'] as String?; From e9aaa838a427963c6107011eb87f9c78171bb3f7 Mon Sep 17 00:00:00 2001 From: NDevTK <31563761+NDevTK@users.noreply.github.com> Date: Wed, 12 Jun 2024 00:46:30 +0100 Subject: [PATCH 05/16] Update frame.dart --- pkgs/dartpad_ui/lib/execution/frame.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/dartpad_ui/lib/execution/frame.dart b/pkgs/dartpad_ui/lib/execution/frame.dart index 97aa6dd28..ef1435a17 100644 --- a/pkgs/dartpad_ui/lib/execution/frame.dart +++ b/pkgs/dartpad_ui/lib/execution/frame.dart @@ -165,7 +165,7 @@ require(["dartpad_main", "dart_sdk"], function(dartpad_main, dart_sdk) { (web.Event event) { if (event is web.MessageEvent) { final data = event.data.dartify() as Map; - if (data['sender'] != 'frame' || event.source.top != web.window.top) { + if (data['sender'] != 'frame' || event.source.parent != web.window) { return; } final type = data['type'] as String?; From b1244a092908e2160d1b0ca316e599e7ab6ceaa4 Mon Sep 17 00:00:00 2001 From: NDevTK <31563761+NDevTK@users.noreply.github.com> Date: Wed, 12 Jun 2024 00:56:22 +0100 Subject: [PATCH 06/16] Update frame.dart --- pkgs/dartpad_ui/lib/execution/frame.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/dartpad_ui/lib/execution/frame.dart b/pkgs/dartpad_ui/lib/execution/frame.dart index ef1435a17..aadb344c8 100644 --- a/pkgs/dartpad_ui/lib/execution/frame.dart +++ b/pkgs/dartpad_ui/lib/execution/frame.dart @@ -165,7 +165,7 @@ require(["dartpad_main", "dart_sdk"], function(dartpad_main, dart_sdk) { (web.Event event) { if (event is web.MessageEvent) { final data = event.data.dartify() as Map; - if (data['sender'] != 'frame' || event.source.parent != web.window) { + if (data['sender'] != 'frame' || event.source?.parent? != web.window) { return; } final type = data['type'] as String?; From 49e264a9feeef0b140f746d898e65dd30f375645 Mon Sep 17 00:00:00 2001 From: NDevTK <31563761+NDevTK@users.noreply.github.com> Date: Wed, 12 Jun 2024 01:05:26 +0100 Subject: [PATCH 07/16] Update frame.dart --- pkgs/dartpad_ui/lib/execution/frame.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/dartpad_ui/lib/execution/frame.dart b/pkgs/dartpad_ui/lib/execution/frame.dart index aadb344c8..1e7a1a17c 100644 --- a/pkgs/dartpad_ui/lib/execution/frame.dart +++ b/pkgs/dartpad_ui/lib/execution/frame.dart @@ -165,7 +165,7 @@ require(["dartpad_main", "dart_sdk"], function(dartpad_main, dart_sdk) { (web.Event event) { if (event is web.MessageEvent) { final data = event.data.dartify() as Map; - if (data['sender'] != 'frame' || event.source?.parent? != web.window) { + if (data['sender'] != 'frame' || _frame.contentWindow && event.source != _frame.contentWindow) { return; } final type = data['type'] as String?; From cbb7b33fd98dd79d424b6dd658e5cf396f12d849 Mon Sep 17 00:00:00 2001 From: NDevTK <31563761+NDevTK@users.noreply.github.com> Date: Wed, 12 Jun 2024 01:10:53 +0100 Subject: [PATCH 08/16] its not going to work --- pkgs/dartpad_ui/lib/execution/frame.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/dartpad_ui/lib/execution/frame.dart b/pkgs/dartpad_ui/lib/execution/frame.dart index 1e7a1a17c..80dfccb2a 100644 --- a/pkgs/dartpad_ui/lib/execution/frame.dart +++ b/pkgs/dartpad_ui/lib/execution/frame.dart @@ -165,7 +165,7 @@ require(["dartpad_main", "dart_sdk"], function(dartpad_main, dart_sdk) { (web.Event event) { if (event is web.MessageEvent) { final data = event.data.dartify() as Map; - if (data['sender'] != 'frame' || _frame.contentWindow && event.source != _frame.contentWindow) { + if (data['sender'] != 'frame' || event.source == null || event.source != _frame.contentWindow) { return; } final type = data['type'] as String?; From 790eb088efa9dfb866a30b6755d3a54ebbfa8733 Mon Sep 17 00:00:00 2001 From: NDevTK <31563761+NDevTK@users.noreply.github.com> Date: Wed, 12 Jun 2024 01:19:59 +0100 Subject: [PATCH 09/16] Update frame.dart --- pkgs/dartpad_ui/lib/execution/frame.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/dartpad_ui/lib/execution/frame.dart b/pkgs/dartpad_ui/lib/execution/frame.dart index 80dfccb2a..2265a9ba0 100644 --- a/pkgs/dartpad_ui/lib/execution/frame.dart +++ b/pkgs/dartpad_ui/lib/execution/frame.dart @@ -165,7 +165,7 @@ require(["dartpad_main", "dart_sdk"], function(dartpad_main, dart_sdk) { (web.Event event) { if (event is web.MessageEvent) { final data = event.data.dartify() as Map; - if (data['sender'] != 'frame' || event.source == null || event.source != _frame.contentWindow) { + if (data['sender'] != 'frame' || _frame.contentWindow == null || event.source != _frame.contentWindow) { return; } final type = data['type'] as String?; From 12bf918f6e201b9f6a415ae8262d625849668cdf Mon Sep 17 00:00:00 2001 From: NDevTK <31563761+NDevTK@users.noreply.github.com> Date: Wed, 12 Jun 2024 01:23:09 +0100 Subject: [PATCH 10/16] Update frame.dart --- pkgs/dartpad_ui/lib/execution/frame.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/dartpad_ui/lib/execution/frame.dart b/pkgs/dartpad_ui/lib/execution/frame.dart index 2265a9ba0..bb23eca7d 100644 --- a/pkgs/dartpad_ui/lib/execution/frame.dart +++ b/pkgs/dartpad_ui/lib/execution/frame.dart @@ -165,7 +165,7 @@ require(["dartpad_main", "dart_sdk"], function(dartpad_main, dart_sdk) { (web.Event event) { if (event is web.MessageEvent) { final data = event.data.dartify() as Map; - if (data['sender'] != 'frame' || _frame.contentWindow == null || event.source != _frame.contentWindow) { + if (data['sender'] != 'frame' || event.source != _frame.contentWindow) { return; } final type = data['type'] as String?; From 552d280c50d4aaff26746fb337b826d9f6aa11eb Mon Sep 17 00:00:00 2001 From: NDevTK <31563761+NDevTK@users.noreply.github.com> Date: Wed, 12 Jun 2024 01:29:07 +0100 Subject: [PATCH 11/16] Update frame.dart --- pkgs/dartpad_ui/lib/execution/frame.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/dartpad_ui/lib/execution/frame.dart b/pkgs/dartpad_ui/lib/execution/frame.dart index bb23eca7d..b22a02898 100644 --- a/pkgs/dartpad_ui/lib/execution/frame.dart +++ b/pkgs/dartpad_ui/lib/execution/frame.dart @@ -165,7 +165,7 @@ require(["dartpad_main", "dart_sdk"], function(dartpad_main, dart_sdk) { (web.Event event) { if (event is web.MessageEvent) { final data = event.data.dartify() as Map; - if (data['sender'] != 'frame' || event.source != _frame.contentWindow) { + if (data['sender'] != 'frame' || event.source.top != _frame.contentWindow.top) { return; } final type = data['type'] as String?; From 3764ba6e42bedceb5b11c1acf98b3cbca1d544b0 Mon Sep 17 00:00:00 2001 From: NDevTK <31563761+NDevTK@users.noreply.github.com> Date: Wed, 12 Jun 2024 01:33:24 +0100 Subject: [PATCH 12/16] Update frame.dart --- pkgs/dartpad_ui/lib/execution/frame.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/dartpad_ui/lib/execution/frame.dart b/pkgs/dartpad_ui/lib/execution/frame.dart index b22a02898..6857bc386 100644 --- a/pkgs/dartpad_ui/lib/execution/frame.dart +++ b/pkgs/dartpad_ui/lib/execution/frame.dart @@ -165,7 +165,7 @@ require(["dartpad_main", "dart_sdk"], function(dartpad_main, dart_sdk) { (web.Event event) { if (event is web.MessageEvent) { final data = event.data.dartify() as Map; - if (data['sender'] != 'frame' || event.source.top != _frame.contentWindow.top) { + if (data['sender'] != 'frame' || event.source.parent! != web.window) { return; } final type = data['type'] as String?; From 0c3ca217a2ec9adf3c1ac50fceceff51fc3557da Mon Sep 17 00:00:00 2001 From: NDevTK <31563761+NDevTK@users.noreply.github.com> Date: Wed, 12 Jun 2024 01:43:55 +0100 Subject: [PATCH 13/16] put web at the start for no reason and hope it works --- pkgs/dartpad_ui/lib/execution/frame.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/dartpad_ui/lib/execution/frame.dart b/pkgs/dartpad_ui/lib/execution/frame.dart index 6857bc386..204558c84 100644 --- a/pkgs/dartpad_ui/lib/execution/frame.dart +++ b/pkgs/dartpad_ui/lib/execution/frame.dart @@ -165,7 +165,7 @@ require(["dartpad_main", "dart_sdk"], function(dartpad_main, dart_sdk) { (web.Event event) { if (event is web.MessageEvent) { final data = event.data.dartify() as Map; - if (data['sender'] != 'frame' || event.source.parent! != web.window) { + if (data['sender'] != 'frame' || web.event.source.parent != web.window) { return; } final type = data['type'] as String?; From adc539950b773558c61176d300c35f68c9d7d620 Mon Sep 17 00:00:00 2001 From: NDevTK <31563761+NDevTK@users.noreply.github.com> Date: Wed, 12 Jun 2024 01:53:11 +0100 Subject: [PATCH 14/16] Update frame.dart --- pkgs/dartpad_ui/lib/execution/frame.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/dartpad_ui/lib/execution/frame.dart b/pkgs/dartpad_ui/lib/execution/frame.dart index 204558c84..3689aebef 100644 --- a/pkgs/dartpad_ui/lib/execution/frame.dart +++ b/pkgs/dartpad_ui/lib/execution/frame.dart @@ -165,7 +165,7 @@ require(["dartpad_main", "dart_sdk"], function(dartpad_main, dart_sdk) { (web.Event event) { if (event is web.MessageEvent) { final data = event.data.dartify() as Map; - if (data['sender'] != 'frame' || web.event.source.parent != web.window) { + if (data['sender'] != 'frame' || _frame.contentWindow != event.source) { return; } final type = data['type'] as String?; From fedbb6cf658fa50ab0f4fecee173d78f26bc9e71 Mon Sep 17 00:00:00 2001 From: NDevTK <31563761+NDevTK@users.noreply.github.com> Date: Wed, 12 Jun 2024 01:56:01 +0100 Subject: [PATCH 15/16] Update frame.dart --- pkgs/dartpad_ui/lib/execution/frame.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/dartpad_ui/lib/execution/frame.dart b/pkgs/dartpad_ui/lib/execution/frame.dart index 3689aebef..919a777ea 100644 --- a/pkgs/dartpad_ui/lib/execution/frame.dart +++ b/pkgs/dartpad_ui/lib/execution/frame.dart @@ -165,7 +165,7 @@ require(["dartpad_main", "dart_sdk"], function(dartpad_main, dart_sdk) { (web.Event event) { if (event is web.MessageEvent) { final data = event.data.dartify() as Map; - if (data['sender'] != 'frame' || _frame.contentWindow != event.source) { + if (data['sender'] != 'frame' || event.source == null || _frame.contentWindow != event.source) { return; } final type = data['type'] as String?; From 67f1ceccf00e07bc523e8c958305fa39b913f1e5 Mon Sep 17 00:00:00 2001 From: NDevTK <31563761+NDevTK@users.noreply.github.com> Date: Wed, 12 Jun 2024 02:00:37 +0100 Subject: [PATCH 16/16] Update frame.dart --- pkgs/dartpad_ui/lib/execution/frame.dart | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/dartpad_ui/lib/execution/frame.dart b/pkgs/dartpad_ui/lib/execution/frame.dart index 919a777ea..1a2dadabd 100644 --- a/pkgs/dartpad_ui/lib/execution/frame.dart +++ b/pkgs/dartpad_ui/lib/execution/frame.dart @@ -165,7 +165,10 @@ require(["dartpad_main", "dart_sdk"], function(dartpad_main, dart_sdk) { (web.Event event) { if (event is web.MessageEvent) { final data = event.data.dartify() as Map; - if (data['sender'] != 'frame' || event.source == null || _frame.contentWindow != event.source) { + if (data['sender'] != 'frame') { + return; + } + if (event.source == null || _frame.contentWindow != event.source) { return; } final type = data['type'] as String?;