Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 9d2313b02b23d7fe95b3e3f11f3e4f6ce2a8a74a
      
https://github.com/WebKit/WebKit/commit/9d2313b02b23d7fe95b3e3f11f3e4f6ce2a8a74a
  Author: canalun <[email protected]>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M Source/WebKit/Shared/Extensions/WebExtensionLocalization.cpp
    M 
Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WKWebExtensionAPILocalization.mm

  Log Message:
  -----------
  Fix the case of two adjacent placeholders for the i18n replacement logic
https://bugs.webkit.org/show_bug.cgi?id=312967

Reviewed by Timothy Hatcher.

The regex (?:[^$]|^)(\$NAME\$) requires a non-$ guard character immediately 
before each placeholder unless the placeholder is at the beginning of a string. 
Advancing by replacement.length() - 1 keeps the last inserted char within the 
search window, letting it serve as the guard for an immediately following 
placeholder.

Test: 
Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WKWebExtensionAPILocalization.mm

* Source/WebKit/Shared/Extensions/WebExtensionLocalization.cpp:
(WebKit::WebExtensionLocalization::stringByReplacingNamedPlaceholdersInString):
(WebKit::WebExtensionLocalization::stringByReplacingPositionalPlaceholdersInString):
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WKWebExtensionAPILocalization.mm:
(TestWebKitAPI::TEST(WKWebExtensionAPILocalization, Placeholders)):

Canonical link: https://commits.webkit.org/311769@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to