Skip to content

Commit

Permalink
Make MediaOverridesForTesting use generated serialization
Browse files Browse the repository at this point in the history
https://bugs.webkit.org/show_bug.cgi?id=262769

Reviewed by Alex Christensen.

* Source/WebKit/CMakeLists.txt:
* Source/WebKit/DerivedSources-input.xcfilelist:
* Source/WebKit/DerivedSources.make:
* Source/WebKit/WebProcess/GPU/media/MediaOverridesForTesting.h:
(WebKit::MediaOverridesForTesting::encode const): Deleted.
(WebKit::MediaOverridesForTesting::decode): Deleted.
* Source/WebKit/WebProcess/GPU/media/MediaOverridesForTesting.serialization.in: Added.

Canonical link: https://commits.webkit.org/269024@main
  • Loading branch information
rniwa committed Oct 7, 2023
1 parent 7e56dd0 commit ab5e902
Show file tree
Hide file tree
Showing 5 changed files with 37 additions and 47 deletions.
1 change: 1 addition & 0 deletions Source/WebKit/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -514,6 +514,7 @@ set(WebKit_SERIALIZATION_IN_FILES
WebProcess/GPU/graphics/BufferIdentifierSet.serialization.in
WebProcess/GPU/graphics/PrepareBackingStoreBuffersData.serialization.in

WebProcess/GPU/media/MediaOverridesForTesting.serialization.in
WebProcess/GPU/media/RemoteAudioSessionConfiguration.serialization.in
WebProcess/GPU/media/RemoteCDMConfiguration.serialization.in
WebProcess/GPU/media/RemoteCDMInstanceConfiguration.serialization.in
Expand Down
1 change: 1 addition & 0 deletions Source/WebKit/DerivedSources-input.xcfilelist
Original file line number Diff line number Diff line change
Expand Up @@ -426,6 +426,7 @@ $(PROJECT_DIR)/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.messages.in
$(PROJECT_DIR)/WebProcess/GPU/graphics/RemoteImageBufferProxy.messages.in
$(PROJECT_DIR)/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.messages.in
$(PROJECT_DIR)/WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.messages.in
$(PROJECT_DIR)/WebProcess/GPU/media/MediaOverridesForTesting.serialization.in
$(PROJECT_DIR)/WebProcess/GPU/media/MediaPlayerPrivateRemote.messages.in
$(PROJECT_DIR)/WebProcess/GPU/media/MediaSourcePrivateRemote.messages.in
$(PROJECT_DIR)/WebProcess/GPU/media/RemoteAudioHardwareListener.messages.in
Expand Down
1 change: 1 addition & 0 deletions Source/WebKit/DerivedSources.make
Original file line number Diff line number Diff line change
Expand Up @@ -650,6 +650,7 @@ SERIALIZATION_DESCRIPTION_FILES = \
WebProcess/GPU/GPUProcessConnectionInfo.serialization.in \
WebProcess/GPU/graphics/BufferIdentifierSet.serialization.in \
WebProcess/GPU/graphics/PrepareBackingStoreBuffersData.serialization.in \
WebProcess/GPU/media/MediaOverridesForTesting.serialization.in \
WebProcess/GPU/media/RemoteCDMConfiguration.serialization.in \
WebProcess/GPU/media/RemoteCDMInstanceConfiguration.serialization.in \
WebProcess/GPU/media/RemoteAudioSessionConfiguration.serialization.in \
Expand Down
47 changes: 0 additions & 47 deletions Source/WebKit/WebProcess/GPU/media/MediaOverridesForTesting.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,53 +38,6 @@ struct MediaOverridesForTesting {
std::optional<bool> vp9HardwareDecoderDisabled;
std::optional<bool> vp9DecoderDisabled;
std::optional<WebCore::ScreenDataOverrides> vp9ScreenSizeAndScale;

template<class Encoder>
void encode(Encoder& encoder) const
{
encoder << systemHasAC;
encoder << systemHasBattery;
encoder << vp9HardwareDecoderDisabled;
encoder << vp9DecoderDisabled;
encoder << vp9ScreenSizeAndScale;
}

template <class Decoder>
static std::optional<MediaOverridesForTesting> decode(Decoder& decoder)
{
std::optional<std::optional<bool>> systemHasAC;
decoder >> systemHasAC;
if (!systemHasAC)
return std::nullopt;

std::optional<std::optional<bool>> systemHasBattery;
decoder >> systemHasBattery;
if (!systemHasBattery)
return std::nullopt;

std::optional<std::optional<bool>> vp9HardwareDecoderDisabled;
decoder >> vp9HardwareDecoderDisabled;
if (!vp9HardwareDecoderDisabled)
return std::nullopt;

std::optional<std::optional<bool>> vp9DecoderDisabled;
decoder >> vp9DecoderDisabled;
if (!vp9DecoderDisabled)
return std::nullopt;

std::optional<std::optional<WebCore::ScreenDataOverrides>> vp9ScreenSizeAndScale;
decoder >> vp9ScreenSizeAndScale;
if (!vp9ScreenSizeAndScale)
return std::nullopt;

return {{
*systemHasAC,
*systemHasBattery,
*vp9HardwareDecoderDisabled,
*vp9DecoderDisabled,
*vp9ScreenSizeAndScale,
}};
}
};

} // namespace WebKit
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Copyright (C) 2023 Apple Inc. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR
# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

#if ENABLE(GPU_PROCESS)

struct WebKit::MediaOverridesForTesting {
std::optional<bool> systemHasAC;
std::optional<bool> systemHasBattery;

std::optional<bool> vp9HardwareDecoderDisabled;
std::optional<bool> vp9DecoderDisabled;
std::optional<WebCore::ScreenDataOverrides> vp9ScreenSizeAndScale;
};

#endif

0 comments on commit ab5e902

Please sign in to comment.