From 0e86bb5863cee05149bd6d3ea80bcae7e2fd22f1 Mon Sep 17 00:00:00 2001 From: simnJS Date: Mon, 2 Nov 2026 20:57:58 +0100 Subject: [PATCH] feat(libSceNKWebKit): implement WebCore::ResourceResponseBase field getters --- core/libs/prx/libSceNKWebKit/Export.cpp | 32 ------- .../include/InventoryExports.hpp | 8 -- .../include/ResourceResponseExports.hpp | 17 ++++ .../prx/libSceNKWebKit/libSceNKWebKit.hpp | 1 + .../libSceNKWebKit/src/ResourceResponse.cpp | 54 +++++++++++ .../src/ResourceResponseAbi.hpp | 37 ++++++++ .../libSceNKWebKit/tests/ResourceResponse.cpp | 89 +++++++++++++++++++ docs/dev/debt/libSceNKWebKit.md | 9 +- 8 files changed, 199 insertions(+), 48 deletions(-) create mode 100644 core/libs/prx/libSceNKWebKit/include/ResourceResponseExports.hpp create mode 100644 core/libs/prx/libSceNKWebKit/src/ResourceResponse.cpp create mode 100644 core/libs/prx/libSceNKWebKit/src/ResourceResponseAbi.hpp create mode 100644 core/libs/prx/libSceNKWebKit/tests/ResourceResponse.cpp diff --git a/core/libs/prx/libSceNKWebKit/Export.cpp b/core/libs/prx/libSceNKWebKit/Export.cpp index a65e52b9cd..ba74b68d5d 100644 --- a/core/libs/prx/libSceNKWebKit/Export.cpp +++ b/core/libs/prx/libSceNKWebKit/Export.cpp @@ -39276,10 +39276,6 @@ int APS5_VABI _ZNK7WebCore20RenderBoxModelObject18inlineContinuationEv() { NotImplemented_nid_no_patch(__func__); } -int APS5_VABI _ZNK7WebCore20ResourceResponseBase11httpVersionEv() { - NotImplemented_nid_no_patch(__func__); -} - int APS5_VABI _ZNK7WebCore20ResourceResponseBase12isAttachmentEv() { NotImplemented_nid_no_patch(__func__); } @@ -39296,34 +39292,14 @@ int APS5_VABI _ZNK7WebCore20ResourceResponseBase14httpStatusCodeEv() { NotImplemented_nid_no_patch(__func__); } -int APS5_VABI _ZNK7WebCore20ResourceResponseBase14httpStatusTextEv() { - NotImplemented_nid_no_patch(__func__); -} - -int APS5_VABI _ZNK7WebCore20ResourceResponseBase14isInHTTPFamilyEv() { - NotImplemented_nid_no_patch(__func__); -} - int APS5_VABI _ZNK7WebCore20ResourceResponseBase15httpHeaderFieldENS_14HTTPHeaderNameE() { NotImplemented_nid_no_patch(__func__); } -int APS5_VABI _ZNK7WebCore20ResourceResponseBase16httpHeaderFieldsEv() { - NotImplemented_nid_no_patch(__func__); -} - -int APS5_VABI _ZNK7WebCore20ResourceResponseBase16textEncodingNameEv() { - NotImplemented_nid_no_patch(__func__); -} - int APS5_VABI _ZNK7WebCore20ResourceResponseBase17suggestedFilenameEv() { NotImplemented_nid_no_patch(__func__); } -int APS5_VABI _ZNK7WebCore20ResourceResponseBase21expectedContentLengthEv() { - NotImplemented_nid_no_patch(__func__); -} - int APS5_VABI _ZNK7WebCore20ResourceResponseBase23hasCacheValidatorFieldsEv() { NotImplemented_nid_no_patch(__func__); } @@ -39348,10 +39324,6 @@ int APS5_VABI _ZNK7WebCore20ResourceResponseBase34cacheControlContainsMustRevali NotImplemented_nid_no_patch(__func__); } -int APS5_VABI _ZNK7WebCore20ResourceResponseBase3urlEv() { - NotImplemented_nid_no_patch(__func__); -} - int APS5_VABI _ZNK7WebCore20ResourceResponseBase6sourceEv() { NotImplemented_nid_no_patch(__func__); } @@ -39364,10 +39336,6 @@ int APS5_VABI _ZNK7WebCore20ResourceResponseBase8lazyInitENS0_9InitLevelE() { NotImplemented_nid_no_patch(__func__); } -int APS5_VABI _ZNK7WebCore20ResourceResponseBase8mimeTypeEv() { - NotImplemented_nid_no_patch(__func__); -} - int APS5_VABI _ZNK7WebCore20ScrollingCoordinator36coordinatesScrollingForOverflowLayerERKNS_11RenderLayerE() { NotImplemented_nid_no_patch(__func__); } diff --git a/core/libs/prx/libSceNKWebKit/include/InventoryExports.hpp b/core/libs/prx/libSceNKWebKit/include/InventoryExports.hpp index 4109935161..7b027a21c1 100644 --- a/core/libs/prx/libSceNKWebKit/include/InventoryExports.hpp +++ b/core/libs/prx/libSceNKWebKit/include/InventoryExports.hpp @@ -6822,29 +6822,21 @@ int APS5_VABI _ZNK7WebCore20LowPowerModeNotifier21isLowPowerModeEnabledEv(); int APS5_VABI _ZNK7WebCore20PasteboardCustomData18createSharedBufferEv(); int APS5_VABI _ZNK7WebCore20PasteboardWriterData7isEmptyEv(); int APS5_VABI _ZNK7WebCore20RenderBoxModelObject18inlineContinuationEv(); -int APS5_VABI _ZNK7WebCore20ResourceResponseBase11httpVersionEv(); int APS5_VABI _ZNK7WebCore20ResourceResponseBase12isAttachmentEv(); int APS5_VABI _ZNK7WebCore20ResourceResponseBase12isSuccessfulEv(); int APS5_VABI _ZNK7WebCore20ResourceResponseBase13isRedirectionEv(); int APS5_VABI _ZNK7WebCore20ResourceResponseBase14httpStatusCodeEv(); -int APS5_VABI _ZNK7WebCore20ResourceResponseBase14httpStatusTextEv(); -int APS5_VABI _ZNK7WebCore20ResourceResponseBase14isInHTTPFamilyEv(); int APS5_VABI _ZNK7WebCore20ResourceResponseBase15httpHeaderFieldENS_14HTTPHeaderNameE(); -int APS5_VABI _ZNK7WebCore20ResourceResponseBase16httpHeaderFieldsEv(); -int APS5_VABI _ZNK7WebCore20ResourceResponseBase16textEncodingNameEv(); int APS5_VABI _ZNK7WebCore20ResourceResponseBase17suggestedFilenameEv(); -int APS5_VABI _ZNK7WebCore20ResourceResponseBase21expectedContentLengthEv(); int APS5_VABI _ZNK7WebCore20ResourceResponseBase23hasCacheValidatorFieldsEv(); int APS5_VABI _ZNK7WebCore20ResourceResponseBase24isAttachmentWithFilenameEv(); int APS5_VABI _ZNK7WebCore20ResourceResponseBase27cacheControlContainsNoCacheEv(); int APS5_VABI _ZNK7WebCore20ResourceResponseBase27cacheControlContainsNoStoreEv(); int APS5_VABI _ZNK7WebCore20ResourceResponseBase29cacheControlContainsImmutableEv(); int APS5_VABI _ZNK7WebCore20ResourceResponseBase34cacheControlContainsMustRevalidateEv(); -int APS5_VABI _ZNK7WebCore20ResourceResponseBase3urlEv(); int APS5_VABI _ZNK7WebCore20ResourceResponseBase6sourceEv(); int APS5_VABI _ZNK7WebCore20ResourceResponseBase8isHTTP09Ev(); int APS5_VABI _ZNK7WebCore20ResourceResponseBase8lazyInitENS0_9InitLevelE(); -int APS5_VABI _ZNK7WebCore20ResourceResponseBase8mimeTypeEv(); int APS5_VABI _ZNK7WebCore20ScrollingCoordinator25scrollableContainerNodeIDERKNS_12RenderObjectE(); int APS5_VABI _ZNK7WebCore20ScrollingCoordinator36coordinatesScrollingForOverflowLayerERKNS_11RenderLayerE(); int APS5_VABI _ZNK7WebCore21BackForwardController12forwardCountEv(); diff --git a/core/libs/prx/libSceNKWebKit/include/ResourceResponseExports.hpp b/core/libs/prx/libSceNKWebKit/include/ResourceResponseExports.hpp new file mode 100644 index 0000000000..2356592e09 --- /dev/null +++ b/core/libs/prx/libSceNKWebKit/include/ResourceResponseExports.hpp @@ -0,0 +1,17 @@ +#pragma once + +#include "SceTypes.hpp" +#include "prx/libSceNKWebKit/src/ResourceResponseAbi.hpp" + +extern "C" { + +const NKWebKit::WtfAbi::URL& APS5_VABI _ZNK7WebCore20ResourceResponseBase3urlEv(const NKWebKit::WebCoreAbi::ResourceResponseBase* self); +const NKWebKit::WebCoreAbi::StringSlot& APS5_VABI _ZNK7WebCore20ResourceResponseBase8mimeTypeEv(const NKWebKit::WebCoreAbi::ResourceResponseBase* self); +long long APS5_VABI _ZNK7WebCore20ResourceResponseBase21expectedContentLengthEv(const NKWebKit::WebCoreAbi::ResourceResponseBase* self); +const NKWebKit::WebCoreAbi::StringSlot& APS5_VABI _ZNK7WebCore20ResourceResponseBase16textEncodingNameEv(const NKWebKit::WebCoreAbi::ResourceResponseBase* self); +const NKWebKit::WebCoreAbi::StringSlot& APS5_VABI _ZNK7WebCore20ResourceResponseBase14httpStatusTextEv(const NKWebKit::WebCoreAbi::ResourceResponseBase* self); +const NKWebKit::WebCoreAbi::StringSlot& APS5_VABI _ZNK7WebCore20ResourceResponseBase11httpVersionEv(const NKWebKit::WebCoreAbi::ResourceResponseBase* self); +const NKWebKit::WebCoreAbi::ResponseHeaderStorage& APS5_VABI _ZNK7WebCore20ResourceResponseBase16httpHeaderFieldsEv(const NKWebKit::WebCoreAbi::ResourceResponseBase* self); +bool APS5_VABI _ZNK7WebCore20ResourceResponseBase14isInHTTPFamilyEv(const NKWebKit::WebCoreAbi::ResourceResponseBase* self); + +} diff --git a/core/libs/prx/libSceNKWebKit/libSceNKWebKit.hpp b/core/libs/prx/libSceNKWebKit/libSceNKWebKit.hpp index ee685eada2..6a7a41629d 100644 --- a/core/libs/prx/libSceNKWebKit/libSceNKWebKit.hpp +++ b/core/libs/prx/libSceNKWebKit/libSceNKWebKit.hpp @@ -4,6 +4,7 @@ #include "prx/libSceNKWebKit/include/Api.hpp" #include "prx/libSceNKWebKit/include/InventoryExports.hpp" #include "prx/libSceNKWebKit/include/JscExports.hpp" +#include "prx/libSceNKWebKit/include/ResourceResponseExports.hpp" #include "prx/libSceNKWebKit/include/WebCoreExports.hpp" #include "prx/libSceNKWebKit/include/WebKitConfigExports.hpp" #include "prx/libSceNKWebKit/include/WebKitValueExports.hpp" diff --git a/core/libs/prx/libSceNKWebKit/src/ResourceResponse.cpp b/core/libs/prx/libSceNKWebKit/src/ResourceResponse.cpp new file mode 100644 index 0000000000..6766fd8801 --- /dev/null +++ b/core/libs/prx/libSceNKWebKit/src/ResourceResponse.cpp @@ -0,0 +1,54 @@ +#include "prx/libSceNKWebKit/include/ResourceResponseExports.hpp" +#include "prx/libSceNKWebKit/include/WtfExports.hpp" + +#include + +namespace { + +using NKWebKit::WebCoreAbi::ResourceResponseBase; + +const ResourceResponseBase& Checked(const ResourceResponseBase* self) { + if (!self) throw std::invalid_argument("null WebCore::ResourceResponseBase"); + return *self; +} + +} + +extern "C" { + +const NKWebKit::WtfAbi::URL& APS5_VABI _ZNK7WebCore20ResourceResponseBase3urlEv(const ResourceResponseBase* self) { + return Checked(self).url; +} + +const NKWebKit::WebCoreAbi::StringSlot& APS5_VABI _ZNK7WebCore20ResourceResponseBase8mimeTypeEv(const ResourceResponseBase* self) { + return Checked(self).mimeType; +} + +long long APS5_VABI _ZNK7WebCore20ResourceResponseBase21expectedContentLengthEv(const ResourceResponseBase* self) { + return Checked(self).expectedContentLength; +} + +const NKWebKit::WebCoreAbi::StringSlot& APS5_VABI _ZNK7WebCore20ResourceResponseBase16textEncodingNameEv(const ResourceResponseBase* self) { + return Checked(self).textEncodingName; +} + +const NKWebKit::WebCoreAbi::StringSlot& APS5_VABI _ZNK7WebCore20ResourceResponseBase14httpStatusTextEv(const ResourceResponseBase* self) { + return Checked(self).httpStatusText; +} + +const NKWebKit::WebCoreAbi::StringSlot& APS5_VABI _ZNK7WebCore20ResourceResponseBase11httpVersionEv(const ResourceResponseBase* self) { + return Checked(self).httpVersion; +} + +const NKWebKit::WebCoreAbi::ResponseHeaderStorage& APS5_VABI _ZNK7WebCore20ResourceResponseBase16httpHeaderFieldsEv(const ResourceResponseBase* self) { + return Checked(self).httpHeaderFields; +} + +bool APS5_VABI _ZNK7WebCore20ResourceResponseBase14isInHTTPFamilyEv(const ResourceResponseBase* self) { + const auto& url = Checked(self).url; + if (!url.impl || !(url.bits & 1)) return false; + NKWebKit::WtfAbi::StringView view{url.impl->data, url.impl->length, !!(url.impl->hashAndFlags & 4)}; + return _ZN3WTF22protocolIsInHTTPFamilyENS_10StringViewE(view); +} + +} diff --git a/core/libs/prx/libSceNKWebKit/src/ResourceResponseAbi.hpp b/core/libs/prx/libSceNKWebKit/src/ResourceResponseAbi.hpp new file mode 100644 index 0000000000..bc1dc71a66 --- /dev/null +++ b/core/libs/prx/libSceNKWebKit/src/ResourceResponseAbi.hpp @@ -0,0 +1,37 @@ +#pragma once + +#include "prx/libSceNKWebKit/src/WtfStringAbi.hpp" + +#include + +namespace NKWebKit::WebCoreAbi { + +struct StringSlot { + WtfAbi::StringImpl* impl; +}; + +struct ResponseHeaderStorage { + alignas(8) unsigned char storage[128]; +}; + +struct ResourceResponseBase { + WtfAbi::URL url; + StringSlot mimeType; + long long expectedContentLength; + StringSlot textEncodingName; + StringSlot httpStatusText; + StringSlot httpVersion; + ResponseHeaderStorage httpHeaderFields; +}; + +static_assert(sizeof(StringSlot) == 8); +static_assert(sizeof(ResponseHeaderStorage) == 128); +static_assert(offsetof(ResourceResponseBase, url) == 0); +static_assert(offsetof(ResourceResponseBase, mimeType) == 40); +static_assert(offsetof(ResourceResponseBase, expectedContentLength) == 48); +static_assert(offsetof(ResourceResponseBase, textEncodingName) == 56); +static_assert(offsetof(ResourceResponseBase, httpStatusText) == 64); +static_assert(offsetof(ResourceResponseBase, httpVersion) == 72); +static_assert(offsetof(ResourceResponseBase, httpHeaderFields) == 80); + +} diff --git a/core/libs/prx/libSceNKWebKit/tests/ResourceResponse.cpp b/core/libs/prx/libSceNKWebKit/tests/ResourceResponse.cpp new file mode 100644 index 0000000000..7ba192daf9 --- /dev/null +++ b/core/libs/prx/libSceNKWebKit/tests/ResourceResponse.cpp @@ -0,0 +1,89 @@ +#include "prx/libc/include/general/VabiMacros.hpp" +#include "prx/libSceNKWebKit/libSceNKWebKit.hpp" + +#include +#include +#include +#include + +using NKWebKit::WebCoreAbi::ResourceResponseBase; +using NKWebKit::WtfAbi::StringImpl; + +static void Check(bool value, int line) { + if (!value) { + std::fprintf(stderr, "ResourceResponseBase check failed at line %d\n", line); + std::abort(); + } +} +#define Require(value) Check((value), __LINE__) + +static StringImpl Make(const char* text) { + return StringImpl{2, static_cast(std::strlen(text)), text, 4}; +} + +static void TestFields() { + auto urlText = Make("http://a/"); + auto mime = Make("text/html"); + auto encoding = Make("utf-8"); + auto status = Make("OK"); + auto version = Make("HTTP/1.1"); + ResourceResponseBase response{}; + response.url.impl = &urlText; + response.url.bits = 1 | (4 << 6); + response.mimeType.impl = &mime; + response.expectedContentLength = 1234567890123LL; + response.textEncodingName.impl = &encoding; + response.httpStatusText.impl = &status; + response.httpVersion.impl = &version; + response.httpHeaderFields.storage[3] = 9; + + Require(&_ZNK7WebCore20ResourceResponseBase3urlEv(&response) == &response.url); + Require(&_ZNK7WebCore20ResourceResponseBase8mimeTypeEv(&response) == &response.mimeType); + Require(_ZNK7WebCore20ResourceResponseBase21expectedContentLengthEv(&response) == 1234567890123LL); + Require(&_ZNK7WebCore20ResourceResponseBase16textEncodingNameEv(&response) == &response.textEncodingName); + Require(&_ZNK7WebCore20ResourceResponseBase14httpStatusTextEv(&response) == &response.httpStatusText); + Require(&_ZNK7WebCore20ResourceResponseBase11httpVersionEv(&response) == &response.httpVersion); + Require(&_ZNK7WebCore20ResourceResponseBase16httpHeaderFieldsEv(&response) == &response.httpHeaderFields); + Require(_ZNK7WebCore20ResourceResponseBase16httpHeaderFieldsEv(&response).storage[3] == 9); + Require(urlText.refCount == 2 && mime.refCount == 2); + response.expectedContentLength = -1; + Require(_ZNK7WebCore20ResourceResponseBase21expectedContentLengthEv(&response) == -1); +} + +static void TestHTTPFamily() { + auto http = Make("http://a/"); + auto https = Make("HTTPS://a/"); + auto file = Make("file:///a"); + auto ftp = Make("ftp://a/"); + ResourceResponseBase response{}; + Require(!_ZNK7WebCore20ResourceResponseBase14isInHTTPFamilyEv(&response)); + response.url.impl = &http; + response.url.bits = 1 | (4 << 6); + Require(_ZNK7WebCore20ResourceResponseBase14isInHTTPFamilyEv(&response)); + response.url.impl = &https; + Require(_ZNK7WebCore20ResourceResponseBase14isInHTTPFamilyEv(&response)); + response.url.impl = &file; + Require(!_ZNK7WebCore20ResourceResponseBase14isInHTTPFamilyEv(&response)); + response.url.impl = &ftp; + Require(!_ZNK7WebCore20ResourceResponseBase14isInHTTPFamilyEv(&response)); + response.url.impl = &http; + response.url.bits = 0; + Require(!_ZNK7WebCore20ResourceResponseBase14isInHTTPFamilyEv(&response)); +} + +static void TestNull() { + bool thrown = false; + try { + _ZNK7WebCore20ResourceResponseBase3urlEv(nullptr); + } catch (const std::invalid_argument&) { + thrown = true; + } + Require(thrown); +} + +int main() { + TestFields(); + TestHTTPFamily(); + TestNull(); + return 0; +} diff --git a/docs/dev/debt/libSceNKWebKit.md b/docs/dev/debt/libSceNKWebKit.md index c0b85b875a..43e6db9c39 100644 --- a/docs/dev/debt/libSceNKWebKit.md +++ b/docs/dev/debt/libSceNKWebKit.md @@ -18,6 +18,7 @@ Inventory prose retains historical counts; use the [generated progress report](h - [Dictionary key order](../../../core/libs/prx/libSceNKWebKit/src/Dictionary.cpp) (libSceNKWebKit) - `WKDictionaryCopyKeys` returns keys sorted by UTF-16 code unit, not in the `WTF::HashMap` iteration order of [WKDictionary.cpp](https://github.com/neonmodder123/PS5-WebKit-11.x/blob/80f77e94c63ee7202eec3d4b5b1a021dd89011ba/Source/WebKit/Shared/API/c/WKDictionary.cpp). - [Out-of-line colors](../../../core/libs/prx/libSceNKWebKit/src/WebCoreColor.cpp) (libSceNKWebKit) - `WebCore::Color` operations on an out-of-line value (extended color spaces in [Color.h](https://github.com/neonmodder123/PS5-WebKit-11.x/blob/80f77e94c63ee7202eec3d4b5b1a021dd89011ba/Source/WebCore/platform/graphics/Color.h)) throw; only inline 8-bit sRGBA values are handled. - [WTF host services](../../../core/libs/prx/libSceNKWebKit/src/WtfSystem.cpp) (libSceNKWebKit) - `fastMalloc`, `bmalloc` and Gigacage allocations come from the host allocator, and `numberOfProcessorCores`, `ramSize`, the clocks and random values come from the host, not the console; they throw when the host cannot answer. `WTFCrash` and failed assertions abort the process. +- [WebCore::ResourceResponseBase](../../../core/libs/prx/libSceNKWebKit/src/ResourceResponse.cpp) (libSceNKWebKit) - the object layout in [ResourceResponseAbi.hpp](../../../core/libs/prx/libSceNKWebKit/src/ResourceResponseAbi.hpp) comes from [ResourceResponseBase.h](https://github.com/neonmodder123/PS5-WebKit-11.x/blob/80f77e94c63ee7202eec3d4b5b1a021dd89011ba/Source/WebCore/platform/network/ResourceResponseBase.h) and is not checked against the PS5 module: `URL` at 0, four `AtomString` and the 64-bit expected length up to offset 80, then a 128-byte `HTTPHeaderMap` (6 inline `CommonHeadersVector` slots as in [HTTPHeaderMap.h](https://github.com/neonmodder123/PS5-WebKit-11.x/blob/80f77e94c63ee7202eec3d4b5b1a021dd89011ba/Source/WebCore/platform/network/HTTPHeaderMap.h)). Only these fields are modelled because `std::optional` follows the `Box` and the size of the PS5 `CertificateInfo` is unknown, so the offsets of `m_httpStatusCode`, `m_isNull`, `m_initLevel`, `m_type`, `m_source` and the flags are not established. The getters (`url`, `mimeType`, `expectedContentLength`, `textEncodingName`, `httpStatusText`, `httpVersion`, `httpHeaderFields`, `isInHTTPFamily`) skip `lazyInit` because the curl [ResourceResponse.h](https://github.com/neonmodder123/PS5-WebKit-11.x/blob/80f77e94c63ee7202eec3d4b5b1a021dd89011ba/Source/WebCore/platform/network/curl/ResourceResponse.h) has no `platformLazyInit`; the PS5 `ResourceResponse` is not known to match. `isInHTTPFamily` reads the valid bit of `URL::bits` and the scheme text, not the cached `m_protocolIsInHTTPFamily` bit, whose position is unknown. The 30 other exports (`ResourceResponseBase` constructors, `setURL`, `setType`, `setExpectedContentLength`, `setHTTPStatusCode`, `httpStatusCode`, `source`, `isSuccessful`, `isRedirection`, `isHTTP09`, `isAttachment*`, `suggestedFilename`, `sanitize*`, `syntheticRedirectResponse`, `cacheControlContains*`, `hasCacheValidatorFields`, `lazyInit`, `httpHeaderField*`, `addHTTPHeaderField*`, `setHTTPHeaderField*`) still throw `NotImplemented_nid_no_patch`: they write `m_isNull`, read fields after `CertificateInfo`, or need `HTTPHeaderMap`, `CertificateInfo`, `Vector` or `ResourceResponse` layouts. ### Known export names; ABI prototypes unverified @@ -6731,29 +6732,21 @@ Inventory prose retains historical counts; use the [generated progress report](h | `_ZNK7WebCore20PasteboardCustomData18createSharedBufferEv` | `oNgcYv7sg2E` | | `_ZNK7WebCore20PasteboardWriterData7isEmptyEv` | `pCjXnlN6R4c` | | `_ZNK7WebCore20RenderBoxModelObject18inlineContinuationEv` | `nV9al8rbOKg` | -| `_ZNK7WebCore20ResourceResponseBase11httpVersionEv` | `qJpr45shtzs` | | `_ZNK7WebCore20ResourceResponseBase12isAttachmentEv` | `C+morSMfP84` | | `_ZNK7WebCore20ResourceResponseBase12isSuccessfulEv` | `3a6B43jFjX8` | | `_ZNK7WebCore20ResourceResponseBase13isRedirectionEv` | `BrSesfxNNvs` | | `_ZNK7WebCore20ResourceResponseBase14httpStatusCodeEv` | `bFhYDNofRSE` | -| `_ZNK7WebCore20ResourceResponseBase14httpStatusTextEv` | `MYd7F5R6ryw` | -| `_ZNK7WebCore20ResourceResponseBase14isInHTTPFamilyEv` | `wW+Pyy9LiGA` | | `_ZNK7WebCore20ResourceResponseBase15httpHeaderFieldENS_14HTTPHeaderNameE` | `JkEYUFSjoXw` | -| `_ZNK7WebCore20ResourceResponseBase16httpHeaderFieldsEv` | `cots5mYtZpo` | -| `_ZNK7WebCore20ResourceResponseBase16textEncodingNameEv` | `wTRdXzKM3u4` | | `_ZNK7WebCore20ResourceResponseBase17suggestedFilenameEv` | `fBVtigUQ-qk` | -| `_ZNK7WebCore20ResourceResponseBase21expectedContentLengthEv` | `i4zxQPHkqJs` | | `_ZNK7WebCore20ResourceResponseBase23hasCacheValidatorFieldsEv` | `qAv1-ceZ9iQ` | | `_ZNK7WebCore20ResourceResponseBase24isAttachmentWithFilenameEv` | `ClZ8vxvE28U` | | `_ZNK7WebCore20ResourceResponseBase27cacheControlContainsNoCacheEv` | `bTMmuXgrk-4` | | `_ZNK7WebCore20ResourceResponseBase27cacheControlContainsNoStoreEv` | `CchgKVep+h8` | | `_ZNK7WebCore20ResourceResponseBase29cacheControlContainsImmutableEv` | `OKrc5AyAqtM` | | `_ZNK7WebCore20ResourceResponseBase34cacheControlContainsMustRevalidateEv` | `8956F1voabk` | -| `_ZNK7WebCore20ResourceResponseBase3urlEv` | `VljXeIAPJoA` | | `_ZNK7WebCore20ResourceResponseBase6sourceEv` | `Nc4OHQvmIOM` | | `_ZNK7WebCore20ResourceResponseBase8isHTTP09Ev` | `JjPx6bo9fbs` | | `_ZNK7WebCore20ResourceResponseBase8lazyInitENS0_9InitLevelE` | `o+TiqWzvS8s` | -| `_ZNK7WebCore20ResourceResponseBase8mimeTypeEv` | `HDR9zkTEoJ4` | | `_ZNK7WebCore20ScrollingCoordinator36coordinatesScrollingForOverflowLayerERKNS_11RenderLayerE` | `1nxJkpm8wLA` | | `_ZNK7WebCore21BackForwardController12forwardCountEv` | `wmkk8v-vEI0` | | `_ZNK7WebCore21BackForwardController18canGoBackOrForwardEi` | `No2407W5Jes` |