mirror of
https://github.com/microsoft/playwright.git
synced 2025-06-26 21:40:17 +00:00
browser(firefox): run callbacks inside critical section (#16282)
Pretty-diff: yury-s/gecko-dev@688b4a7
This commit is contained in:
parent
919b1cbb22
commit
4fc05e8374
@ -1,2 +1,2 @@
|
|||||||
1341
|
1342
|
||||||
Changed: yurys@chromium.org Tue Aug 2 13:48:43 PDT 2022
|
Changed: yurys@chromium.org Thu Aug 4 18:33:22 PDT 2022
|
||||||
|
@ -1422,7 +1422,7 @@ index c16b813f29d8a519673129bb7debaaec0430145a..6f82922ac7e889e55beda7d43da3ebe6
|
|||||||
/** Synthesize a touch event. The event types supported are:
|
/** Synthesize a touch event. The event types supported are:
|
||||||
* touchstart, touchend, touchmove, and touchcancel
|
* touchstart, touchend, touchmove, and touchcancel
|
||||||
diff --git a/dom/media/systemservices/video_engine/desktop_capture_impl.cc b/dom/media/systemservices/video_engine/desktop_capture_impl.cc
|
diff --git a/dom/media/systemservices/video_engine/desktop_capture_impl.cc b/dom/media/systemservices/video_engine/desktop_capture_impl.cc
|
||||||
index 9d4e8fbbfe8d45cc6245c7659423004ad1ceedeb..70150e9271720a562fd646a50d30369965d8521a 100644
|
index 9d4e8fbbfe8d45cc6245c7659423004ad1ceedeb..f955c7bace3cedfe0469e59a5e8c5824158c4d50 100644
|
||||||
--- a/dom/media/systemservices/video_engine/desktop_capture_impl.cc
|
--- a/dom/media/systemservices/video_engine/desktop_capture_impl.cc
|
||||||
+++ b/dom/media/systemservices/video_engine/desktop_capture_impl.cc
|
+++ b/dom/media/systemservices/video_engine/desktop_capture_impl.cc
|
||||||
@@ -123,10 +123,11 @@ int32_t ScreenDeviceInfoImpl::GetOrientation(const char* deviceUniqueIdUTF8,
|
@@ -123,10 +123,11 @@ int32_t ScreenDeviceInfoImpl::GetOrientation(const char* deviceUniqueIdUTF8,
|
||||||
@ -1494,15 +1494,18 @@ index 9d4e8fbbfe8d45cc6245c7659423004ad1ceedeb..70150e9271720a562fd646a50d303699
|
|||||||
int32_t DesktopCaptureImpl::StopCaptureIfAllClientsClose() {
|
int32_t DesktopCaptureImpl::StopCaptureIfAllClientsClose() {
|
||||||
if (_dataCallBacks.empty()) {
|
if (_dataCallBacks.empty()) {
|
||||||
return StopCapture();
|
return StopCapture();
|
||||||
@@ -636,6 +656,12 @@ void DesktopCaptureImpl::OnCaptureResult(DesktopCapturer::Result result,
|
@@ -636,6 +656,15 @@ void DesktopCaptureImpl::OnCaptureResult(DesktopCapturer::Result result,
|
||||||
frameInfo.height = frame->size().height();
|
frameInfo.height = frame->size().height();
|
||||||
frameInfo.videoType = VideoType::kARGB;
|
frameInfo.videoType = VideoType::kARGB;
|
||||||
|
|
||||||
+ size_t videoFrameStride =
|
+ size_t videoFrameStride =
|
||||||
+ frameInfo.width * DesktopFrame::kBytesPerPixel;
|
+ frameInfo.width * DesktopFrame::kBytesPerPixel;
|
||||||
|
+ {
|
||||||
|
+ rtc::CritScope cs(&_apiCs);
|
||||||
+ for (auto rawFrameCallback : _rawFrameCallbacks) {
|
+ for (auto rawFrameCallback : _rawFrameCallbacks) {
|
||||||
+ rawFrameCallback->OnRawFrame(videoFrame, videoFrameStride, frameInfo);
|
+ rawFrameCallback->OnRawFrame(videoFrame, videoFrameStride, frameInfo);
|
||||||
+ }
|
+ }
|
||||||
|
+ }
|
||||||
+
|
+
|
||||||
size_t videoFrameLength =
|
size_t videoFrameLength =
|
||||||
frameInfo.width * frameInfo.height * DesktopFrame::kBytesPerPixel;
|
frameInfo.width * frameInfo.height * DesktopFrame::kBytesPerPixel;
|
||||||
@ -2638,7 +2641,7 @@ diff --git a/widget/cocoa/NativeKeyBindings.mm b/widget/cocoa/NativeKeyBindings.
|
|||||||
index d3e5983259053175584254e7ac01ca9ce024f33a..97f5b851c402fea5477c0ee57af451c62b016eec 100644
|
index d3e5983259053175584254e7ac01ca9ce024f33a..97f5b851c402fea5477c0ee57af451c62b016eec 100644
|
||||||
--- a/widget/cocoa/NativeKeyBindings.mm
|
--- a/widget/cocoa/NativeKeyBindings.mm
|
||||||
+++ b/widget/cocoa/NativeKeyBindings.mm
|
+++ b/widget/cocoa/NativeKeyBindings.mm
|
||||||
@@ -492,6 +492,13 @@ void NativeKeyBindings::GetEditCommandsForTests(NativeKeyBindingsType aType,
|
@@ -492,6 +492,13 @@
|
||||||
break;
|
break;
|
||||||
case KEY_NAME_INDEX_ArrowLeft:
|
case KEY_NAME_INDEX_ArrowLeft:
|
||||||
if (aEvent.IsAlt()) {
|
if (aEvent.IsAlt()) {
|
||||||
@ -2652,7 +2655,7 @@ index d3e5983259053175584254e7ac01ca9ce024f33a..97f5b851c402fea5477c0ee57af451c6
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (aEvent.IsMeta() || (aEvent.IsControl() && aEvent.IsShift())) {
|
if (aEvent.IsMeta() || (aEvent.IsControl() && aEvent.IsShift())) {
|
||||||
@@ -512,6 +519,13 @@ void NativeKeyBindings::GetEditCommandsForTests(NativeKeyBindingsType aType,
|
@@ -512,6 +519,13 @@
|
||||||
break;
|
break;
|
||||||
case KEY_NAME_INDEX_ArrowRight:
|
case KEY_NAME_INDEX_ArrowRight:
|
||||||
if (aEvent.IsAlt()) {
|
if (aEvent.IsAlt()) {
|
||||||
@ -2666,7 +2669,7 @@ index d3e5983259053175584254e7ac01ca9ce024f33a..97f5b851c402fea5477c0ee57af451c6
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (aEvent.IsMeta() || (aEvent.IsControl() && aEvent.IsShift())) {
|
if (aEvent.IsMeta() || (aEvent.IsControl() && aEvent.IsShift())) {
|
||||||
@@ -532,6 +546,10 @@ void NativeKeyBindings::GetEditCommandsForTests(NativeKeyBindingsType aType,
|
@@ -532,6 +546,10 @@
|
||||||
break;
|
break;
|
||||||
case KEY_NAME_INDEX_ArrowUp:
|
case KEY_NAME_INDEX_ArrowUp:
|
||||||
if (aEvent.IsControl()) {
|
if (aEvent.IsControl()) {
|
||||||
@ -2677,7 +2680,7 @@ index d3e5983259053175584254e7ac01ca9ce024f33a..97f5b851c402fea5477c0ee57af451c6
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (aEvent.IsMeta()) {
|
if (aEvent.IsMeta()) {
|
||||||
@@ -541,7 +559,7 @@ void NativeKeyBindings::GetEditCommandsForTests(NativeKeyBindingsType aType,
|
@@ -541,7 +559,7 @@
|
||||||
instance->AppendEditCommandsForSelector(
|
instance->AppendEditCommandsForSelector(
|
||||||
!aEvent.IsShift()
|
!aEvent.IsShift()
|
||||||
? ToObjcSelectorPtr(@selector(moveToBeginningOfDocument:))
|
? ToObjcSelectorPtr(@selector(moveToBeginningOfDocument:))
|
||||||
@ -2686,7 +2689,7 @@ index d3e5983259053175584254e7ac01ca9ce024f33a..97f5b851c402fea5477c0ee57af451c6
|
|||||||
aCommands);
|
aCommands);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -564,6 +582,10 @@ void NativeKeyBindings::GetEditCommandsForTests(NativeKeyBindingsType aType,
|
@@ -564,6 +582,10 @@
|
||||||
break;
|
break;
|
||||||
case KEY_NAME_INDEX_ArrowDown:
|
case KEY_NAME_INDEX_ArrowDown:
|
||||||
if (aEvent.IsControl()) {
|
if (aEvent.IsControl()) {
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
1342
|
1343
|
||||||
Changed: yurys@chromium.org Tue Aug 2 13:50:22 PDT 2022
|
Changed: yurys@chromium.org Thu Aug 4 18:29:49 PDT 2022
|
||||||
|
@ -1422,7 +1422,7 @@ index c16b813f29d8a519673129bb7debaaec0430145a..6f82922ac7e889e55beda7d43da3ebe6
|
|||||||
/** Synthesize a touch event. The event types supported are:
|
/** Synthesize a touch event. The event types supported are:
|
||||||
* touchstart, touchend, touchmove, and touchcancel
|
* touchstart, touchend, touchmove, and touchcancel
|
||||||
diff --git a/dom/media/systemservices/video_engine/desktop_capture_impl.cc b/dom/media/systemservices/video_engine/desktop_capture_impl.cc
|
diff --git a/dom/media/systemservices/video_engine/desktop_capture_impl.cc b/dom/media/systemservices/video_engine/desktop_capture_impl.cc
|
||||||
index 9d4e8fbbfe8d45cc6245c7659423004ad1ceedeb..70150e9271720a562fd646a50d30369965d8521a 100644
|
index 9d4e8fbbfe8d45cc6245c7659423004ad1ceedeb..f955c7bace3cedfe0469e59a5e8c5824158c4d50 100644
|
||||||
--- a/dom/media/systemservices/video_engine/desktop_capture_impl.cc
|
--- a/dom/media/systemservices/video_engine/desktop_capture_impl.cc
|
||||||
+++ b/dom/media/systemservices/video_engine/desktop_capture_impl.cc
|
+++ b/dom/media/systemservices/video_engine/desktop_capture_impl.cc
|
||||||
@@ -123,10 +123,11 @@ int32_t ScreenDeviceInfoImpl::GetOrientation(const char* deviceUniqueIdUTF8,
|
@@ -123,10 +123,11 @@ int32_t ScreenDeviceInfoImpl::GetOrientation(const char* deviceUniqueIdUTF8,
|
||||||
@ -1494,15 +1494,18 @@ index 9d4e8fbbfe8d45cc6245c7659423004ad1ceedeb..70150e9271720a562fd646a50d303699
|
|||||||
int32_t DesktopCaptureImpl::StopCaptureIfAllClientsClose() {
|
int32_t DesktopCaptureImpl::StopCaptureIfAllClientsClose() {
|
||||||
if (_dataCallBacks.empty()) {
|
if (_dataCallBacks.empty()) {
|
||||||
return StopCapture();
|
return StopCapture();
|
||||||
@@ -636,6 +656,12 @@ void DesktopCaptureImpl::OnCaptureResult(DesktopCapturer::Result result,
|
@@ -636,6 +656,15 @@ void DesktopCaptureImpl::OnCaptureResult(DesktopCapturer::Result result,
|
||||||
frameInfo.height = frame->size().height();
|
frameInfo.height = frame->size().height();
|
||||||
frameInfo.videoType = VideoType::kARGB;
|
frameInfo.videoType = VideoType::kARGB;
|
||||||
|
|
||||||
+ size_t videoFrameStride =
|
+ size_t videoFrameStride =
|
||||||
+ frameInfo.width * DesktopFrame::kBytesPerPixel;
|
+ frameInfo.width * DesktopFrame::kBytesPerPixel;
|
||||||
|
+ {
|
||||||
|
+ rtc::CritScope cs(&_apiCs);
|
||||||
+ for (auto rawFrameCallback : _rawFrameCallbacks) {
|
+ for (auto rawFrameCallback : _rawFrameCallbacks) {
|
||||||
+ rawFrameCallback->OnRawFrame(videoFrame, videoFrameStride, frameInfo);
|
+ rawFrameCallback->OnRawFrame(videoFrame, videoFrameStride, frameInfo);
|
||||||
+ }
|
+ }
|
||||||
|
+ }
|
||||||
+
|
+
|
||||||
size_t videoFrameLength =
|
size_t videoFrameLength =
|
||||||
frameInfo.width * frameInfo.height * DesktopFrame::kBytesPerPixel;
|
frameInfo.width * frameInfo.height * DesktopFrame::kBytesPerPixel;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user