Skip to content

Commit

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

Reviewed by Alex Christensen.

Use the generated serialization for EditingRange.

* Source/WebKit/DerivedSources-input.xcfilelist:
* Source/WebKit/DerivedSources.make:
* Source/WebKit/Shared/EditingRange.cpp:
(IPC::ArgumentCoder<WebKit::EditingRange>::encode): Deleted.
(IPC::ArgumentCoder<WebKit::EditingRange>::decode): Deleted.
* Source/WebKit/Shared/EditingRange.h:
* Source/WebKit/Shared/EditingRange.serialization.in: Added.

Canonical link: https://commits.webkit.org/268895@main
  • Loading branch information
rniwa committed Oct 5, 2023
1 parent 29d2da5 commit 63763f0
Show file tree
Hide file tree
Showing 6 changed files with 34 additions and 35 deletions.
1 change: 1 addition & 0 deletions Source/WebKit/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -370,6 +370,7 @@ set(WebKit_SERIALIZATION_IN_FILES
Shared/BackgroundFetchState.serialization.in
Shared/CallbackID.serialization.in
Shared/DisplayListArgumentCoders.serialization.in
Shared/EditingRange.serialization.in
Shared/EditorState.serialization.in
Shared/FileSystemSyncAccessHandleInfo.serialization.in
Shared/FocusedElementInformation.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 @@ -187,6 +187,7 @@ $(PROJECT_DIR)/Shared/Cocoa/RevealItem.serialization.in
$(PROJECT_DIR)/Shared/Cocoa/WebCoreArgumentCodersCocoa.serialization.in
$(PROJECT_DIR)/Shared/Databases/IndexedDB/WebIDBResult.serialization.in
$(PROJECT_DIR)/Shared/DisplayListArgumentCoders.serialization.in
$(PROJECT_DIR)/Shared/EditingRange.serialization.in
$(PROJECT_DIR)/Shared/EditorState.serialization.in
$(PROJECT_DIR)/Shared/Extensions/WebExtensionAlarmParameters.serialization.in
$(PROJECT_DIR)/Shared/Extensions/WebExtensionContentWorldType.serialization.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 @@ -501,6 +501,7 @@ SERIALIZATION_DESCRIPTION_FILES = \
Shared/CallbackID.serialization.in \
Shared/BackgroundFetchState.serialization.in \
Shared/DisplayListArgumentCoders.serialization.in \
Shared/EditingRange.serialization.in \
Shared/EditorState.serialization.in \
Shared/Extensions/WebExtensionAlarmParameters.serialization.in \
Shared/Extensions/WebExtensionContentWorldType.serialization.in \
Expand Down
22 changes: 0 additions & 22 deletions Source/WebKit/Shared/EditingRange.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -77,25 +77,3 @@ EditingRange EditingRange::fromRange(WebCore::LocalFrame& frame, const std::opti
}

} // namespace WebKit

namespace IPC {

void ArgumentCoder<WebKit::EditingRange>::encode(Encoder& encoder, const WebKit::EditingRange& editingRange)
{
encoder << editingRange.location;
encoder << editingRange.length;
}

std::optional<WebKit::EditingRange> ArgumentCoder<WebKit::EditingRange>::decode(Decoder& decoder)
{
WebKit::EditingRange editingRange;

if (!decoder.decode(editingRange.location))
return std::nullopt;
if (!decoder.decode(editingRange.length))
return std::nullopt;

return editingRange;
}

} // namespace IPC
13 changes: 0 additions & 13 deletions Source/WebKit/Shared/EditingRange.h
Original file line number Diff line number Diff line change
Expand Up @@ -86,16 +86,3 @@ struct EditingRange {
};

}

namespace IPC {
template<> struct ArgumentCoder<WebKit::EditingRange> {
static void encode(Encoder&, const WebKit::EditingRange&);
static std::optional<WebKit::EditingRange> decode(Decoder&);
};
}

namespace WTF {
template<> struct EnumTraits<WebKit::EditingRangeIsRelativeTo> {
using values = EnumValues<WebKit::EditingRangeIsRelativeTo, WebKit::EditingRangeIsRelativeTo::EditableRoot, WebKit::EditingRangeIsRelativeTo::Paragraph>;
};
}
31 changes: 31 additions & 0 deletions Source/WebKit/Shared/EditingRange.serialization.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# 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.

enum class WebKit::EditingRangeIsRelativeTo : uint8_t {
EditableRoot,
Paragraph,
}

struct WebKit::EditingRange {
uint64_t location;
[Validator='!(Checked<uint64_t> { *location } + *length).hasOverflowed()'] uint64_t length;
};

0 comments on commit 63763f0

Please sign in to comment.