From e39fd8f79c66818f78d1f6c17f8da9502b03bdbb Mon Sep 17 00:00:00 2001 From: Alex Hunt Date: Mon, 4 Aug 2025 10:29:37 -0700 Subject: [PATCH] Fix mimeType parsing for CDP responses (#53027) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/53027 Tweaks MIME type parsing in CDP Network messages, now matching Chrome. This fixes response preview behaviour by the frontend for text response previews that are `base64Encoded` 🙌🏻 (we were observing these for JSON `fetch` calls on iOS). Changelog: [Internal] Reviewed By: vzaidman Differential Revision: D79559495 fbshipit-source-id: 2565af7587fc6fbdd3ef6fcbb10c558341ddfbdc --- .../jsinspector-modern/network/HttpUtils.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/react-native/ReactCommon/jsinspector-modern/network/HttpUtils.cpp b/packages/react-native/ReactCommon/jsinspector-modern/network/HttpUtils.cpp index 1fdcf953efc..6dfb205d5ba 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/network/HttpUtils.cpp +++ b/packages/react-native/ReactCommon/jsinspector-modern/network/HttpUtils.cpp @@ -154,7 +154,15 @@ std::string mimeTypeFromHeaders(const Headers& headers) { std::transform( lowerName.begin(), lowerName.end(), lowerName.begin(), ::tolower); if (lowerName == "content-type") { - mimeType = value; + // Parse MIME type (discarding any parameters after ";") from the + // Content-Type header + // https://datatracker.ietf.org/doc/html/rfc7231#section-3.1.1.1 + size_t pos = value.find(';'); + if (pos != std::string::npos) { + mimeType = value.substr(0, pos); + } else { + mimeType = value; + } break; } }