add Fix-WebWorker-requestAnimationFrame

This commit is contained in:
Carmelo Messina
2022-10-04 17:59:56 +02:00
parent e86b15cbcf
commit ab27a87552
3 changed files with 63 additions and 1 deletions
+3 -1
View File
@@ -202,11 +202,13 @@ Viewport-Protection.patch
Override-Navigator-Language.patch
Partition-blobs-by-top-frame-url.patch
Remove-http-referrals-in-cross-origin-navigation.patch
Fix-WebWorker-requestAnimationFrame.patch
00Enable-ThirdPartyStoragePartitioning-flag.patch
00Enable-CrossSiteFlagNetworkAnonymizationKey-flag.patch
00Experimental-user-scripts-support--fixup-.patch
00Remove-navigator-connection-info--fixup-.patch
00Experimental-user-scripts-support--fixup--2.patch
00OpenSearch--miscellaneous--fixup-.patch
00Eyeo-Adblock.patch
00Eyeo-Adblock-Remove-Privacy-Issues.patch
@@ -0,0 +1,22 @@
From: Your Name <you@example.com>
Date: Tue, 4 Oct 2022 07:45:59 +0000
Subject: OpenSearch: miscellaneous (fixup)
---
components/search_engines/template_url_parser.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/components/search_engines/template_url_parser.cc b/components/search_engines/template_url_parser.cc
--- a/components/search_engines/template_url_parser.cc
+++ b/components/search_engines/template_url_parser.cc
@@ -168,7 +168,7 @@ class SafeTemplateURLParser {
void SafeTemplateURLParser::OnXmlParseComplete(
data_decoder::DataDecoder::ValueOrError value_or_error) {
if (!value_or_error.has_value()) {
- DLOG(ERROR) << "Failed to parse XML: " << value_or_error.error();
+ LOG(ERROR) << "Failed to parse XML: " << value_or_error.error();
std::move(callback_).Run(nullptr);
return;
}
--
2.25.1
@@ -0,0 +1,38 @@
From: uazo <uazo@users.noreply.github.com>
Date: Mon, 3 Oct 2022 09:39:07 +0000
Subject: Fix WebWorker requestAnimationFrame
Aligns requestAnimationFrame's callback to the w3c specification
See bugid 1236113
---
.../animation_frame/worker_animation_frame_provider.cc | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/third_party/blink/renderer/core/animation_frame/worker_animation_frame_provider.cc b/third_party/blink/renderer/core/animation_frame/worker_animation_frame_provider.cc
--- a/third_party/blink/renderer/core/animation_frame/worker_animation_frame_provider.cc
+++ b/third_party/blink/renderer/core/animation_frame/worker_animation_frame_provider.cc
@@ -7,7 +7,9 @@
#include "base/trace_event/trace_event.h"
#include "third_party/blink/renderer/core/offscreencanvas/offscreen_canvas.h"
#include "third_party/blink/renderer/core/timing/worker_global_scope_performance.h"
+#include "third_party/blink/renderer/core/workers/worker_global_scope.h"
#include "third_party/blink/renderer/platform/bindings/microtask.h"
+#include "third_party/blink/renderer/platform/wtf/casting.h"
#include "third_party/blink/renderer/platform/wtf/cross_thread_functional.h"
namespace blink {
@@ -62,7 +64,11 @@ void WorkerAnimationFrameProvider::BeginFrame(const viz::BeginFrameArgs& args) {
}
}
- double time = (args.frame_time - base::TimeTicks()).InMillisecondsF();
+ auto* global_scope = DynamicTo<WorkerGlobalScope>(provider->context_.Get());
+ DCHECK(global_scope);
+ double time = Performance::ClampTimeResolution(
+ args.frame_time - global_scope->TimeOrigin(),
+ provider->context_->CrossOriginIsolatedCapability());
provider->callback_collection_.ExecuteFrameCallbacks(time, time);
}
provider->begin_frame_provider_->FinishBeginFrame(args);
--
2.25.1