WebKit Bugzilla
Attachment 356131 Details for
Bug 192216
: Web Inspector: replace all unicode characters with the escaped character code
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-192216-20181129214643.patch (text/plain), 57.58 KB, created by
Devin Rousso
on 2018-11-29 21:46:45 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Devin Rousso
Created:
2018-11-29 21:46:45 PST
Size:
57.58 KB
patch
obsolete
>diff --git a/Source/WebInspectorUI/ChangeLog b/Source/WebInspectorUI/ChangeLog >index 00aaf547c5b3b31a924f6b91f63013c93296eecd..47b4135855ba21929269502b92674c08802f7f24 100644 >--- a/Source/WebInspectorUI/ChangeLog >+++ b/Source/WebInspectorUI/ChangeLog >@@ -1,3 +1,48 @@ >+2018-11-29 Devin Rousso <drousso@apple.com> >+ >+ Web Inspector: replace all unicode characters with the escaped character code >+ https://bugs.webkit.org/show_bug.cgi?id=192216 >+ <rdar://problem/46275637> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * Localizations/en.lproj/localizedStrings.js: >+ * UserInterface/Controllers/BreakpointPopoverController.js: >+ * UserInterface/Debug/UncaughtExceptionReporter.js: >+ * UserInterface/Models/AuditTestCase.js: >+ * UserInterface/Models/Canvas.js: >+ * UserInterface/Models/RecordingAction.js: >+ * UserInterface/Models/ScriptTimelineRecord.js: >+ * UserInterface/Views/AuditTestCaseContentView.js: >+ * UserInterface/Views/AuditTestContentView.js: >+ * UserInterface/Views/AuditTestGroupContentView.js: >+ * UserInterface/Views/CallFrameView.js: >+ * UserInterface/Views/CanvasContentView.js: >+ * UserInterface/Views/CanvasOverviewContentView.css: >+ * UserInterface/Views/ConsoleMessageView.css: >+ * UserInterface/Views/ContextMenuUtilities.js: >+ * UserInterface/Views/DOMEventsBreakdownView.js: >+ * UserInterface/Views/DataGrid.css: >+ * UserInterface/Views/DataGrid.js: >+ * UserInterface/Views/DatabaseTableContentView.js: >+ * UserInterface/Views/DebuggerDashboardView.css: >+ * UserInterface/Views/DebuggerSidebarPanel.js: >+ * UserInterface/Views/ErrorObjectView.js: >+ * UserInterface/Views/EventBreakpointPopover.js: >+ * UserInterface/Views/InlineSwatch.js: >+ * UserInterface/Views/LayerTreeDataGridNode.js: >+ * UserInterface/Views/LayerTreeDetailsSidebarPanel.js: >+ * UserInterface/Views/Layers3DContentView.js: >+ * UserInterface/Views/LayoutTimelineDataGridNode.js: >+ * UserInterface/Views/NetworkTableContentView.css: >+ * UserInterface/Views/NetworkTableContentView.js: >+ * UserInterface/Views/ObjectPreviewView.js: >+ * UserInterface/Views/ProfileDataGridNode.js: >+ * UserInterface/Views/ResourceTimelineDataGridNode.js: >+ * UserInterface/Views/ScriptDetailsTimelineView.css: >+ * UserInterface/Views/TextEditor.css: >+ * UserInterface/Views/TreeOutline.css: >+ > 2018-11-28 Joseph Pecoraro <pecoraro@apple.com> > > Web Inspector: REGRESSION(?): all "Show *" develop menu items cause the page to crash >diff --git a/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js b/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js >index 178fb363f0cd2b683a51a1add14cb132e7cd9e24..a4d3a7dc9346bb94a7498caa6a403e43f0bc0728 100644 >--- a/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js >+++ b/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js >@@ -40,7 +40,7 @@ localizedStrings["%d fps"] = "%d fps"; > localizedStrings["%d matches"] = "%d matches"; > localizedStrings["%d of %d"] = "%d of %d"; > localizedStrings["%dpx"] = "%dpx"; >-localizedStrings["%dpx²"] = "%dpx²"; >+localizedStrings["%dpx\u00B2"] = "%dpx\u00B2"; > localizedStrings["%s (%s)"] = "%s (%s)"; > localizedStrings["%s (%s, %s)"] = "%s (%s, %s)"; > localizedStrings["%s (default)"] = "%s (default)"; >@@ -96,11 +96,11 @@ localizedStrings["All Layers"] = "All Layers"; > localizedStrings["All Requests"] = "All Requests"; > localizedStrings["All Resources"] = "All Resources"; > localizedStrings["All Storage"] = "All Storage"; >-localizedStrings["All items in â%sâ must be error objects"] = "All items in â%sâ must be error objects"; >-localizedStrings["All items in â%sâ must be non-empty strings"] = "All items in â%sâ must be non-empty strings"; >-localizedStrings["All items in â%sâ must be valid DOM nodes"] = "All items in â%sâ must be valid DOM nodes"; >+localizedStrings["All items in \u201C%s\u201D must be error objects"] = "All items in \u201C%s\u201D must be error objects"; >+localizedStrings["All items in \u201C%s\u201D must be non-empty strings"] = "All items in \u201C%s\u201D must be non-empty strings"; >+localizedStrings["All items in \u201C%s\u201D must be valid DOM nodes"] = "All items in \u201C%s\u201D must be valid DOM nodes"; > localizedStrings["An error occurred trying to load the resource."] = "An error occurred trying to load the resource."; >-localizedStrings["An error occurred trying to read the â%sâ table."] = "An error occurred trying to read the â%sâ table."; >+localizedStrings["An error occurred trying to read the \u201C%s\u201D table."] = "An error occurred trying to read the \u201C%s\u201D table."; > localizedStrings["An unexpected error %s occurred."] = "An unexpected error %s occurred."; > localizedStrings["An unexpected error occurred."] = "An unexpected error occurred."; > localizedStrings["Angle"] = "Angle"; >@@ -145,7 +145,7 @@ localizedStrings["Boundary"] = "Boundary"; > localizedStrings["Box Model"] = "Box Model"; > localizedStrings["Break on events with name:"] = "Break on events with name:"; > localizedStrings["Break on request with URL:"] = "Break on request with URL:"; >-localizedStrings["Break onâ¦"] = "Break onâ¦"; >+localizedStrings["Break on\u2026"] = "Break on\u2026"; > localizedStrings["Breakdown"] = "Breakdown"; > localizedStrings["Breakdown of each memory category at the end of the selected time range"] = "Breakdown of each memory category at the end of the selected time range"; > localizedStrings["Breakpoint"] = "Breakpoint"; >@@ -159,7 +159,7 @@ localizedStrings["Bytes Sent"] = "Bytes Sent"; > localizedStrings["CSP Hash"] = "CSP Hash"; > localizedStrings["CSS"] = "CSS"; > localizedStrings["CSS Canvas"] = "CSS Canvas"; >-localizedStrings["CSS canvas â%sâ"] = "CSS canvas â%sâ"; >+localizedStrings["CSS canvas \u201C%s\u201D"] = "CSS canvas \u201C%s\u201D"; > localizedStrings["Cached"] = "Cached"; > localizedStrings["Call Frames Truncated"] = "Call Frames Truncated"; > localizedStrings["Call Stack"] = "Call Stack"; >@@ -179,7 +179,7 @@ localizedStrings["Catch Variables"] = "Catch Variables"; > localizedStrings["Categories"] = "Categories"; > localizedStrings["Certificate"] = "Certificate"; > localizedStrings["Character Data"] = "Character Data"; >-localizedStrings["Charge â%sâ to Callers"] = "Charge â%sâ to Callers"; >+localizedStrings["Charge \u201C%s\u201D to Callers"] = "Charge \u201C%s\u201D to Callers"; > localizedStrings["Checked"] = "Checked"; > localizedStrings["Child"] = "Child"; > localizedStrings["Child Layers"] = "Child Layers"; >@@ -313,30 +313,30 @@ localizedStrings["Dynamically calculated for the parent element"] = "Dynamically > localizedStrings["Dynamically calculated for the selected element"] = "Dynamically calculated for the selected element"; > localizedStrings["Dynamically calculated for the selected element and did not match"] = "Dynamically calculated for the selected element and did not match"; > localizedStrings["Edit"] = "Edit"; >-localizedStrings["Edit Breakpointâ¦"] = "Edit Breakpointâ¦"; >+localizedStrings["Edit Breakpoint\u2026"] = "Edit Breakpoint\u2026"; >+localizedStrings["Edit \u201C%s\u201D"] = "Edit \u201C%s\u201D"; >+localizedStrings["Edit \u201Ccubic-bezier\u201D function"] = "Edit \u201Ccubic-bezier\u201D function"; >+localizedStrings["Edit \u201Cspring\u201D function"] = "Edit \u201Cspring\u201D function"; > localizedStrings["Edit configuration"] = "Edit configuration"; > localizedStrings["Edit custom gradient"] = "Edit custom gradient"; >-localizedStrings["Edit â%sâ"] = "Edit â%sâ"; >-localizedStrings["Edit âcubic-bezierâ function"] = "Edit âcubic-bezierâ function"; >-localizedStrings["Edit âspringâ function"] = "Edit âspringâ function"; > localizedStrings["Element"] = "Element"; > localizedStrings["Element clips compositing descendants"] = "Element clips compositing descendants"; > localizedStrings["Element has CSS blending applied and composited descendants"] = "Element has CSS blending applied and composited descendants"; > localizedStrings["Element has CSS filters applied"] = "Element has CSS filters applied"; > localizedStrings["Element has CSS filters applied and composited descendants"] = "Element has CSS filters applied and composited descendants"; >+localizedStrings["Element has \u201C-webkit-overflow-scrolling: touch\u201D style"] = "Element has \u201C-webkit-overflow-scrolling: touch\u201D style"; >+localizedStrings["Element has \u201Cbackface-visibility: hidden\u201D style"] = "Element has \u201Cbackface-visibility: hidden\u201D style"; >+localizedStrings["Element has \u201Cblend-mode\u201D style"] = "Element has \u201Cblend-mode\u201D style"; >+localizedStrings["Element has \u201Cposition: fixed\u201D style"] = "Element has \u201Cposition: fixed\u201D style"; >+localizedStrings["Element has \u201Cposition: sticky\u201D style"] = "Element has \u201Cposition: sticky\u201D style"; >+localizedStrings["Element has \u201Ctransform-style: preserve-3d\u201D style"] = "Element has \u201Ctransform-style: preserve-3d\u201D style"; >+localizedStrings["Element has \u201Cwill-change\u201D style which includes opacity, transform, transform-style, perspective, filter or backdrop-filter"] = "Element has \u201Cwill-change\u201D style which includes opacity, transform, transform-style, perspective, filter or backdrop-filter"; > localizedStrings["Element has a 2D transform and composited descendants"] = "Element has a 2D transform and composited descendants"; > localizedStrings["Element has a 3D transform"] = "Element has a 3D transform"; > localizedStrings["Element has a reflection and composited descendants"] = "Element has a reflection and composited descendants"; > localizedStrings["Element has children with a negative z-index"] = "Element has children with a negative z-index"; > localizedStrings["Element has opacity applied and composited descendants"] = "Element has opacity applied and composited descendants"; > localizedStrings["Element has perspective applied"] = "Element has perspective applied"; >-localizedStrings["Element has â-webkit-overflow-scrolling: touchâ style"] = "Element has â-webkit-overflow-scrolling: touchâ style"; >-localizedStrings["Element has âbackface-visibility: hiddenâ style"] = "Element has âbackface-visibility: hiddenâ style"; >-localizedStrings["Element has âblend-modeâ style"] = "Element has âblend-modeâ style"; >-localizedStrings["Element has âposition: fixedâ style"] = "Element has âposition: fixedâ style"; >-localizedStrings["Element has âposition: stickyâ style"] = "Element has âposition: stickyâ style"; >-localizedStrings["Element has âtransform-style: preserve-3dâ style"] = "Element has âtransform-style: preserve-3dâ style"; >-localizedStrings["Element has âwill-changeâ style which includes opacity, transform, transform-style, perspective, filter or backdrop-filter"] = "Element has âwill-changeâ style which includes opacity, transform, transform-style, perspective, filter or backdrop-filter"; > localizedStrings["Element is <canvas>"] = "Element is <canvas>"; > localizedStrings["Element is <iframe>"] = "Element is <iframe>"; > localizedStrings["Element is <video>"] = "Element is <video>"; >@@ -356,7 +356,6 @@ localizedStrings["Enable Event Listener"] = "Enable Event Listener"; > localizedStrings["Enable Layers Tab"] = "Enable Layers Tab"; > localizedStrings["Enable New Tab Bar"] = "Enable New Tab Bar"; > localizedStrings["Enable Program"] = "Enable Program"; >-localizedStrings["Enable Selection of Multiple Properties"] = "Enable Selection of Multiple Properties"; > localizedStrings["Enable all breakpoints (%s)"] = "Enable all breakpoints (%s)"; > localizedStrings["Enable breakpoints"] = "Enable breakpoints"; > localizedStrings["Enable paint flashing"] = "Enable paint flashing"; >@@ -386,7 +385,7 @@ localizedStrings["Event Breakpoint\u2026"] = "Event Breakpoint\u2026"; > localizedStrings["Event Dispatched"] = "Event Dispatched"; > localizedStrings["Event Listeners"] = "Event Listeners"; > localizedStrings["Events"] = "Events"; >-localizedStrings["Example: â%sâ"] = "Example: â%sâ"; >+localizedStrings["Example: \u201C%s\u201D"] = "Example: \u201C%s\u201D"; > localizedStrings["Exception with thrown value: %s"] = "Exception with thrown value: %s"; > localizedStrings["Exited Full-Screen Mode"] = "Exited Full-Screen Mode"; > localizedStrings["Exited Low-Power Mode"] = "Exited Low-Power Mode"; >@@ -444,7 +443,7 @@ localizedStrings["Frames %d \u2013 %d"] = "Frames %d \u2013 %d"; > localizedStrings["Full Garbage Collection"] = "Full Garbage Collection"; > localizedStrings["Full URL"] = "Full URL"; > localizedStrings["Full-Screen"] = "Full-Screen"; >-localizedStrings["Full-Screen from â%sâ"] = "Full-Screen from â%sâ"; >+localizedStrings["Full-Screen from \u201C%s\u201D"] = "Full-Screen from \u201C%s\u201D"; > localizedStrings["Function"] = "Function"; > localizedStrings["Function Name Variable"] = "Function Name Variable"; > localizedStrings["Garbage Collection"] = "Garbage Collection"; >@@ -741,7 +740,7 @@ localizedStrings["Resource does not have timing data"] = "Resource does not have > localizedStrings["Resource failed to load."] = "Resource failed to load."; > localizedStrings["Resource has no content"] = "Resource has no content"; > localizedStrings["Resource has no timing data"] = "Resource has no timing data"; >-localizedStrings["Resource was loaded with the âdataâ scheme."] = "Resource was loaded with the âdataâ scheme."; >+localizedStrings["Resource was loaded with the \u201Cdata\u201D scheme."] = "Resource was loaded with the \u201Cdata\u201D scheme."; > localizedStrings["Resource was served from the cache."] = "Resource was served from the cache."; > localizedStrings["Resources"] = "Resources"; > localizedStrings["Response"] = "Response"; >@@ -770,7 +769,7 @@ localizedStrings["Reveal in Original Resource"] = "Reveal in Original Resource"; > localizedStrings["Reveal in Resources Tab"] = "Reveal in Resources Tab"; > localizedStrings["Role"] = "Role"; > localizedStrings["Run %d"] = "Run %d"; >-localizedStrings["Running the â%sâ audit"] = "Running the â%sâ audit"; >+localizedStrings["Running the \u201C%s\u201D audit"] = "Running the \u201C%s\u201D audit"; > localizedStrings["Samples"] = "Samples"; > localizedStrings["Save %d"] = "Save %d"; > localizedStrings["Save File"] = "Save File"; >@@ -890,7 +889,7 @@ localizedStrings["Stop element selection (%s)"] = "Stop element selection (%s)"; > localizedStrings["Stop recording"] = "Stop recording"; > localizedStrings["Stop recording (%s)"] = "Stop recording (%s)"; > localizedStrings["Stop recording canvas actions"] = "Stop recording canvas actions"; >-localizedStrings["Stopping the â%sâ audit"] = "Stopping the â%sâ audit"; >+localizedStrings["Stopping the \u201C%s\u201D audit"] = "Stopping the \u201C%s\u201D audit"; > localizedStrings["Storage"] = "Storage"; > localizedStrings["Style Attribute"] = "Style Attribute"; > localizedStrings["Style rule"] = "Style rule"; >@@ -918,14 +917,14 @@ localizedStrings["Tests the accessibility of form elements."] = "Tests the acces > localizedStrings["Text"] = "Text"; > localizedStrings["Text Frame"] = "Text Frame"; > localizedStrings["Text Node"] = "Text Node"; >+localizedStrings["The \u201C%s\u201D audit failed"] = "The \u201C%s\u201D audit failed"; >+localizedStrings["The \u201C%s\u201D audit is unsupported"] = "The \u201C%s\u201D audit is unsupported"; >+localizedStrings["The \u201C%s\u201D audit passed"] = "The \u201C%s\u201D audit passed"; >+localizedStrings["The \u201C%s\u201D audit threw an error"] = "The \u201C%s\u201D audit threw an error"; >+localizedStrings["The \u201C%s\u201D audit warned"] = "The \u201C%s\u201D audit warned"; >+localizedStrings["The \u201C%s\u201D\ntable is empty."] = "The \u201C%s\u201D\ntable is empty."; > localizedStrings["The page's content has changed"] = "The page's content has changed"; > localizedStrings["The resource was requested insecurely."] = "The resource was requested insecurely."; >-localizedStrings["The â%sâ audit failed"] = "The â%sâ audit failed"; >-localizedStrings["The â%sâ audit is unsupported"] = "The â%sâ audit is unsupported"; >-localizedStrings["The â%sâ audit passed"] = "The â%sâ audit passed"; >-localizedStrings["The â%sâ audit threw an error"] = "The â%sâ audit threw an error"; >-localizedStrings["The â%sâ audit warned"] = "The â%sâ audit warned"; >-localizedStrings["The â%sâ\ntable is empty."] = "The â%sâ\ntable is empty."; > localizedStrings["These are all of the different test result levels."] = "These are all of the different test result levels."; > localizedStrings["These are all of the different types of data that can be returned with the test result."] = "These are all of the different types of data that can be returned with the test result."; > localizedStrings["These tests serve as a demonstration of the functionality and structure of audits."] = "These tests serve as a demonstration of the functionality and structure of audits."; >@@ -1006,7 +1005,7 @@ localizedStrings["View variable value"] = "View variable value"; > localizedStrings["Visible"] = "Visible"; > localizedStrings["Waiting"] = "Waiting"; > localizedStrings["Waiting for canvas contexts created by script or CSS."] = "Waiting for canvas contexts created by script or CSS."; >-localizedStrings["Waiting for framesâ¦"] = "Waiting for framesâ¦"; >+localizedStrings["Waiting for frames\u2026"] = "Waiting for frames\u2026"; > localizedStrings["Warning: "] = "Warning: "; > localizedStrings["Warnings"] = "Warnings"; > localizedStrings["Watch Expressions"] = "Watch Expressions"; >@@ -1028,6 +1027,12 @@ localizedStrings["XHRs"] = "XHRs"; > localizedStrings["XPath"] = "XPath"; > localizedStrings["Yes"] = "Yes"; > localizedStrings["Zoom:"] = "Zoom:"; >+localizedStrings["\u201C%s\u201D Event Fired"] = "\u201C%s\u201D Event Fired"; >+localizedStrings["\u201C%s\u201D Profile Recorded"] = "\u201C%s\u201D Profile Recorded"; >+localizedStrings["\u201C%s\u201D is invalid."] = "\u201C%s\u201D is invalid."; >+localizedStrings["\u201C%s\u201D must be a %s"] = "\u201C%s\u201D must be a %s"; >+localizedStrings["\u201C%s\u201D must be an %s"] = "\u201C%s\u201D must be an %s"; >+localizedStrings["\u201C%s\u201D threw an error."] = "\u201C%s\u201D threw an error."; > localizedStrings["computed"] = "computed"; > localizedStrings["default"] = "default"; > localizedStrings["for changes to take effect"] = "for changes to take effect"; >@@ -1043,9 +1048,3 @@ localizedStrings["times before stopping"] = "times before stopping"; > localizedStrings["toggle"] = "toggle"; > localizedStrings["unsupported version."] = "unsupported version."; > localizedStrings["value"] = "value"; >-localizedStrings["â%sâ Event Fired"] = "â%sâ Event Fired"; >-localizedStrings["â%sâ must be a %s"] = "â%sâ must be a %s"; >-localizedStrings["â%sâ must be an %s"] = "â%sâ must be an %s"; >-localizedStrings["â%sâ Profile Recorded"] = "â%sâ Profile Recorded"; >-localizedStrings["â%sâ is invalid."] = "â%sâ is invalid."; >-localizedStrings["â%sâ threw an error."] = "â%sâ threw an error."; >diff --git a/Source/WebInspectorUI/UserInterface/Controllers/BreakpointPopoverController.js b/Source/WebInspectorUI/UserInterface/Controllers/BreakpointPopoverController.js >index eae67aac60b8ae01fbaec4dfd4f881f0723f5905..5a42b264f71d0b43c646200f87b783b7e18a29f5 100644 >--- a/Source/WebInspectorUI/UserInterface/Controllers/BreakpointPopoverController.js >+++ b/Source/WebInspectorUI/UserInterface/Controllers/BreakpointPopoverController.js >@@ -75,7 +75,7 @@ WI.BreakpointPopoverController = class BreakpointPopoverController extends WI.Ob > }; > > if (WI.debuggerManager.isBreakpointEditable(breakpoint)) >- contextMenu.appendItem(WI.UIString("Edit Breakpointâ¦"), editBreakpoint); >+ contextMenu.appendItem(WI.UIString("Edit Breakpoint\u2026"), editBreakpoint); > > if (breakpoint.autoContinue && !breakpoint.disabled) { > contextMenu.appendItem(WI.UIString("Disable Breakpoint"), toggleBreakpoint); >diff --git a/Source/WebInspectorUI/UserInterface/Debug/UncaughtExceptionReporter.js b/Source/WebInspectorUI/UserInterface/Debug/UncaughtExceptionReporter.js >index 5e99a6b66b754d4565617a73cde3aa2dd0b5db3b..3f8c8688ca2061f05f56a3e2fc37f92e2d26b530 100644 >--- a/Source/WebInspectorUI/UserInterface/Debug/UncaughtExceptionReporter.js >+++ b/Source/WebInspectorUI/UserInterface/Debug/UncaughtExceptionReporter.js >@@ -207,7 +207,7 @@ function createErrorSheet() { > > function stringifyAndTruncateObject(object) { > let string = JSON.stringify(object); >- return string.length > 500 ? string.substr(0, 500) + "â¦" : string; >+ return string.length > 500 ? string.substr(0, 500) + ellipsis : string; > } > > if (window.InspectorBackend && InspectorBackend.currentDispatchState) { >diff --git a/Source/WebInspectorUI/UserInterface/Models/AuditTestCase.js b/Source/WebInspectorUI/UserInterface/Models/AuditTestCase.js >index 7b365859b749e17df602b383c1ca8e8aadc6e95b..b038b56c8537d4a84aa5e68121004374b7382ca9 100644 >--- a/Source/WebInspectorUI/UserInterface/Models/AuditTestCase.js >+++ b/Source/WebInspectorUI/UserInterface/Models/AuditTestCase.js >@@ -142,9 +142,9 @@ WI.AuditTestCase = class AuditTestCase extends WI.AuditTestBase > function addErrorForValueType(valueType) { > let value = null; > if (valueType === "object" || valueType === "array") >- value = WI.UIString("â%sâ must be an %s"); >+ value = WI.UIString("\u201C%s\u201D must be an %s"); > else >- value = WI.UIString("â%sâ must be a %s"); >+ value = WI.UIString("\u201C%s\u201D must be a %s"); > addError(value.format(key, valueType)); > } > >@@ -195,7 +195,7 @@ WI.AuditTestCase = class AuditTestCase extends WI.AuditTestBase > > await resultArrayForEach("domNodes", async (item) => { > if (!item || !item.value || item.value.type !== "object" || item.value.subtype !== "node") { >- addError(WI.UIString("All items in â%sâ must be valid DOM nodes").format(WI.unlocalizedString("domNodes"))); >+ addError(WI.UIString("All items in \u201C%s\u201D must be valid DOM nodes").format(WI.unlocalizedString("domNodes"))); > return; > } > >@@ -215,7 +215,7 @@ WI.AuditTestCase = class AuditTestCase extends WI.AuditTestBase > > await resultArrayForEach("domAttributes", (item) => { > if (!item || !item.value || item.value.type !== "string" || !item.value.value.length) { >- addError(WI.UIString("All items in â%sâ must be non-empty strings").format(WI.unlocalizedString("domAttributes"))); >+ addError(WI.UIString("All items in \u201C%s\u201D must be non-empty strings").format(WI.unlocalizedString("domAttributes"))); > return; > } > >@@ -226,7 +226,7 @@ WI.AuditTestCase = class AuditTestCase extends WI.AuditTestBase > > await resultArrayForEach("errors", (item) => { > if (!item || !item.value || item.value.type !== "object" || item.value.subtype !== "error") { >- addError(WI.UIString("All items in â%sâ must be error objects").format(WI.unlocalizedString("errors"))); >+ addError(WI.UIString("All items in \u201C%s\u201D must be error objects").format(WI.unlocalizedString("errors"))); > return; > } > >diff --git a/Source/WebInspectorUI/UserInterface/Models/Canvas.js b/Source/WebInspectorUI/UserInterface/Models/Canvas.js >index fefc11296cceb740248ee7307e6fb6f9a1686b7e..20218aeb957fb06306a0d16507328bfa0bb8db81 100644 >--- a/Source/WebInspectorUI/UserInterface/Models/Canvas.js >+++ b/Source/WebInspectorUI/UserInterface/Models/Canvas.js >@@ -152,7 +152,7 @@ WI.Canvas = class Canvas extends WI.Object > get displayName() > { > if (this._cssCanvasName) >- return WI.UIString("CSS canvas â%sâ").format(this._cssCanvasName); >+ return WI.UIString("CSS canvas \u201C%s\u201D").format(this._cssCanvasName); > > if (this._domNode) { > let idSelector = this._domNode.escapedIdSelector; >diff --git a/Source/WebInspectorUI/UserInterface/Models/RecordingAction.js b/Source/WebInspectorUI/UserInterface/Models/RecordingAction.js >index e83a710cc571f3dd6f831a8871518c4bab18b320..8fb6b744abf168de6febf5db6a7eae78e27efb32 100644 >--- a/Source/WebInspectorUI/UserInterface/Models/RecordingAction.js >+++ b/Source/WebInspectorUI/UserInterface/Models/RecordingAction.js >@@ -310,7 +310,7 @@ WI.RecordingAction = class RecordingAction extends WI.Object > if (prototype && !(name in prototype)) { > this.markInvalid(); > >- WI.Recording.synthesizeError(WI.UIString("â%sâ is invalid.").format(name)); >+ WI.Recording.synthesizeError(WI.UIString("\u201C%s\u201D is invalid.").format(name)); > } > } > } >@@ -360,7 +360,7 @@ WI.RecordingAction = class RecordingAction extends WI.Object > } catch { > this.markInvalid(); > >- WI.Recording.synthesizeError(WI.UIString("â%sâ threw an error.").format(this._name)); >+ WI.Recording.synthesizeError(WI.UIString("\u201C%s\u201D threw an error.").format(this._name)); > } > } > >diff --git a/Source/WebInspectorUI/UserInterface/Models/ScriptTimelineRecord.js b/Source/WebInspectorUI/UserInterface/Models/ScriptTimelineRecord.js >index 6b40ac8142bbc199ffe644d0092c1ebee6c21ee6..331bdd52fec3a10afde0a2cecd1a59ea2ee93abc 100644 >--- a/Source/WebInspectorUI/UserInterface/Models/ScriptTimelineRecord.js >+++ b/Source/WebInspectorUI/UserInterface/Models/ScriptTimelineRecord.js >@@ -371,7 +371,7 @@ WI.ScriptTimelineRecord.EventType.displayName = function(eventType, details, inc > return WI.UIString("Probe Sample Recorded"); > case WI.ScriptTimelineRecord.EventType.ConsoleProfileRecorded: > if (details && (details instanceof String || typeof details === "string")) >- return WI.UIString("â%sâ Profile Recorded").format(details); >+ return WI.UIString("\u201C%s\u201D Profile Recorded").format(details); > return WI.UIString("Console Profile Recorded"); > case WI.ScriptTimelineRecord.EventType.GarbageCollected: > console.assert(details); >diff --git a/Source/WebInspectorUI/UserInterface/Views/AuditTestCaseContentView.js b/Source/WebInspectorUI/UserInterface/Views/AuditTestCaseContentView.js >index 1fcb53b7ca2df738621eeaeeb824cf70025f4873..10882ebdfeac9c6bc571f44fcc49458735fd6c5d 100644 >--- a/Source/WebInspectorUI/UserInterface/Views/AuditTestCaseContentView.js >+++ b/Source/WebInspectorUI/UserInterface/Views/AuditTestCaseContentView.js >@@ -223,7 +223,7 @@ WI.AuditTestCaseContentView = class AuditTestCaseContentView extends WI.AuditTes > showRunningPlaceholder() > { > if (!this.placeholderElement || !this.placeholderElement.__placeholderRunning) { >- this.placeholderElement = WI.createMessageTextView(WI.UIString("Running the â%sâ audit").format(this.representedObject.name)); >+ this.placeholderElement = WI.createMessageTextView(WI.UIString("Running the \u201C%s\u201D audit").format(this.representedObject.name)); > this.placeholderElement.__placeholderRunning = true; > > let spinner = new WI.IndeterminateProgressSpinner; >diff --git a/Source/WebInspectorUI/UserInterface/Views/AuditTestContentView.js b/Source/WebInspectorUI/UserInterface/Views/AuditTestContentView.js >index 96d5eb3a83e41631b73414193518cdae9a732a88..8a401f4cd868fa2219c5665793ddb5d2d3a2941d 100644 >--- a/Source/WebInspectorUI/UserInterface/Views/AuditTestContentView.js >+++ b/Source/WebInspectorUI/UserInterface/Views/AuditTestContentView.js >@@ -136,7 +136,7 @@ WI.AuditTestContentView = class AuditTestContentView extends WI.ContentView > showStoppingPlaceholder() > { > if (!this.placeholderElement || !this.placeholderElement.__placeholderStopping) { >- this.placeholderElement = WI.createMessageTextView(WI.UIString("Stopping the â%sâ audit").format(this.representedObject.name)); >+ this.placeholderElement = WI.createMessageTextView(WI.UIString("Stopping the \u201C%s\u201D audit").format(this.representedObject.name)); > this.placeholderElement.__placeholderStopping = true; > > let spinner = new WI.IndeterminateProgressSpinner; >@@ -176,15 +176,15 @@ WI.AuditTestContentView = class AuditTestContentView extends WI.ContentView > > let message = null; > if (result.didError) >- message = WI.UIString("The â%sâ audit threw an error"); >+ message = WI.UIString("The \u201C%s\u201D audit threw an error"); > else if (result.didFail) >- message = WI.UIString("The â%sâ audit failed"); >+ message = WI.UIString("The \u201C%s\u201D audit failed"); > else if (result.didWarn) >- message = WI.UIString("The â%sâ audit warned"); >+ message = WI.UIString("The \u201C%s\u201D audit warned"); > else if (result.didPass) >- message = WI.UIString("The â%sâ audit passed"); >+ message = WI.UIString("The \u201C%s\u201D audit passed"); > else if (result.unsupported) >- message = WI.UIString("The â%sâ audit is unsupported"); >+ message = WI.UIString("The \u201C%s\u201D audit is unsupported"); > else { > console.error("Unknown result", result); > return; >diff --git a/Source/WebInspectorUI/UserInterface/Views/AuditTestGroupContentView.js b/Source/WebInspectorUI/UserInterface/Views/AuditTestGroupContentView.js >index 04bf5339ee0848f8999b7879894c4f2b4337b0b4..a0377e4a4d2d5291b11b7c3b551e2955c4a28377 100644 >--- a/Source/WebInspectorUI/UserInterface/Views/AuditTestGroupContentView.js >+++ b/Source/WebInspectorUI/UserInterface/Views/AuditTestGroupContentView.js >@@ -174,7 +174,7 @@ WI.AuditTestGroupContentView = class AuditTestGroupContentView extends WI.AuditT > showRunningPlaceholder() > { > if (!this.placeholderElement || !this.placeholderElement.__placeholderRunning) { >- this.placeholderElement = WI.createMessageTextView(WI.UIString("Running the â%sâ audit").format(this.representedObject.name)); >+ this.placeholderElement = WI.createMessageTextView(WI.UIString("Running the \u201C%s\u201D audit").format(this.representedObject.name)); > this.placeholderElement.__placeholderRunning = true; > > this.placeholderElement.__progress = document.createElement("progress"); >diff --git a/Source/WebInspectorUI/UserInterface/Views/CallFrameView.js b/Source/WebInspectorUI/UserInterface/Views/CallFrameView.js >index 1a74b0dba5727254ca2052db07c694973c6de13e..eda5cfc90c5e7d54e4002e089dc68b7988e53633 100644 >--- a/Source/WebInspectorUI/UserInterface/Views/CallFrameView.js >+++ b/Source/WebInspectorUI/UserInterface/Views/CallFrameView.js >@@ -49,7 +49,7 @@ WI.CallFrameView = class CallFrameView extends WI.Object > if (showFunctionName) { > var separatorElement = document.createElement("span"); > separatorElement.classList.add("separator"); >- separatorElement.textContent = " â "; >+ separatorElement.textContent = ` ${emDash} `; > subtitleElement.append(separatorElement); > } > >diff --git a/Source/WebInspectorUI/UserInterface/Views/CanvasContentView.js b/Source/WebInspectorUI/UserInterface/Views/CanvasContentView.js >index c69b99d14cebdc03af508df4fe0ee7b465c33f08..e839da704b1b2a4532fa55a1a9b9197a14ad9e0f 100644 >--- a/Source/WebInspectorUI/UserInterface/Views/CanvasContentView.js >+++ b/Source/WebInspectorUI/UserInterface/Views/CanvasContentView.js >@@ -399,7 +399,7 @@ WI.CanvasContentView = class CanvasContentView extends WI.ContentView > let formatString = this.representedObject.recordingFrameCount === 1 ? WI.UIString("%d Frame") : WI.UIString("%d Frames"); > title = formatString.format(this.representedObject.recordingFrameCount); > } else >- title = WI.UIString("Waiting for framesâ¦"); >+ title = WI.UIString("Waiting for frames\u2026"); > > this._progressView.title = title; > this._progressView.subtitle = this.representedObject.recordingBufferUsed ? Number.bytesToString(this.representedObject.recordingBufferUsed) : ""; >diff --git a/Source/WebInspectorUI/UserInterface/Views/CanvasOverviewContentView.css b/Source/WebInspectorUI/UserInterface/Views/CanvasOverviewContentView.css >index e08885dc7a1300df918ed22cae4e44e34d2b876a..903b7034457e7d1148c3d2e3cd2ffe4634432b63 100644 >--- a/Source/WebInspectorUI/UserInterface/Views/CanvasOverviewContentView.css >+++ b/Source/WebInspectorUI/UserInterface/Views/CanvasOverviewContentView.css >@@ -81,7 +81,7 @@ > } > > .content-view.canvas-overview .content-view.canvas > header .subtitle::before { >- content: " â "; >+ content: "\00A0\2014\00A0"; > } > > .content-view.canvas-overview .content-view.canvas.recording-active > header > .titles > .title { >diff --git a/Source/WebInspectorUI/UserInterface/Views/ConsoleMessageView.css b/Source/WebInspectorUI/UserInterface/Views/ConsoleMessageView.css >index 62eade6ffc575479144b7426908645fb97eedec8..5cb9e6e2f42eccb526f088ba93022a4c3a727c4b 100644 >--- a/Source/WebInspectorUI/UserInterface/Views/ConsoleMessageView.css >+++ b/Source/WebInspectorUI/UserInterface/Views/ConsoleMessageView.css >@@ -142,7 +142,7 @@ > text-align: center; > > height: 13px; >- content: "â¢"; >+ content: "\2022"; > > font-family: -webkit-system-font, sans-serif; > font-size: 11px; >diff --git a/Source/WebInspectorUI/UserInterface/Views/ContextMenuUtilities.js b/Source/WebInspectorUI/UserInterface/Views/ContextMenuUtilities.js >index dec3cd9c37eada8dd42284f5d774a1e4b9b0b807..b543529f5c1c0198999fa4b58e9da5038958fd9b 100644 >--- a/Source/WebInspectorUI/UserInterface/Views/ContextMenuUtilities.js >+++ b/Source/WebInspectorUI/UserInterface/Views/ContextMenuUtilities.js >@@ -263,7 +263,7 @@ WI.appendContextMenuItemsForDOMNodeBreakpoints = function(contextMenu, domNode, > > contextMenu.__domBreakpointItemsAdded = true; > >- let subMenu = contextMenu.appendSubMenuItem(WI.UIString("Break onâ¦")); >+ let subMenu = contextMenu.appendSubMenuItem(WI.UIString("Break on\u2026")); > > let breakpoints = WI.domDebuggerManager.domBreakpointsForNode(domNode); > let keyValuePairs = breakpoints.map((breakpoint) => [breakpoint.type, breakpoint]); >diff --git a/Source/WebInspectorUI/UserInterface/Views/DOMEventsBreakdownView.js b/Source/WebInspectorUI/UserInterface/Views/DOMEventsBreakdownView.js >index e3f78deb87616ff11c63d71eca072b5a0e0b5ae1..29104d0542c121b67e86a4035b72c5acd93f1793 100644 >--- a/Source/WebInspectorUI/UserInterface/Views/DOMEventsBreakdownView.js >+++ b/Source/WebInspectorUI/UserInterface/Views/DOMEventsBreakdownView.js >@@ -133,7 +133,7 @@ WI.DOMEventsBreakdownView = class DOMEventsBreakdownView extends WI.View > fullscreenArea.style.setProperty("width", percentOfTotalTime(fullscreenRange.endTimestamp - fullscreenRange.startTimestamp) + "%"); > > if (fullscreenRange.originator) >- fullscreenArea.title = WI.UIString("Full-Screen from â%sâ").format(fullscreenRange.originator.displayName); >+ fullscreenArea.title = WI.UIString("Full-Screen from \u201C%s\u201D").format(fullscreenRange.originator.displayName); > else > fullscreenArea.title = WI.UIString("Full-Screen"); > } >diff --git a/Source/WebInspectorUI/UserInterface/Views/DataGrid.css b/Source/WebInspectorUI/UserInterface/Views/DataGrid.css >index b58a182d62f26432c2f8bc3f8c0b003b8cf39e8a..dd653caccb2f91ba3bdbba43127610c9d77be0b9 100644 >--- a/Source/WebInspectorUI/UserInterface/Views/DataGrid.css >+++ b/Source/WebInspectorUI/UserInterface/Views/DataGrid.css >@@ -314,7 +314,7 @@ body[dir=rtl] .data-grid tr.parent td.disclosure::before { > } > > .data-grid td .subtitle::before { >- content: " â "; >+ content: "\00A0\2014\00A0"; > } > > .data-grid:focus tr.selected td .subtitle { >diff --git a/Source/WebInspectorUI/UserInterface/Views/DataGrid.js b/Source/WebInspectorUI/UserInterface/Views/DataGrid.js >index 9e56b045fee5df5645f6fe20f47d7b886e473b48..1355ed1f3a1bf7e454e93aabb333c58e674ff5d0 100644 >--- a/Source/WebInspectorUI/UserInterface/Views/DataGrid.js >+++ b/Source/WebInspectorUI/UserInterface/Views/DataGrid.js >@@ -1641,7 +1641,7 @@ WI.DataGrid = class DataGrid extends WI.View > let element = event.target.enclosingNodeOrSelfWithNodeName("td"); > let columnIdentifier = element.__columnIdentifier; > let columnTitle = this.dataGrid.columns.get(columnIdentifier)["title"]; >- contextMenu.appendItem(WI.UIString("Edit â%sâ").format(columnTitle), this._startEditing.bind(this, event.target)); >+ contextMenu.appendItem(WI.UIString("Edit \u201C%s\u201D").format(columnTitle), this._startEditing.bind(this, event.target)); > } > } > >diff --git a/Source/WebInspectorUI/UserInterface/Views/DatabaseTableContentView.js b/Source/WebInspectorUI/UserInterface/Views/DatabaseTableContentView.js >index cb2b4c9c1bebbc377ecb71eb75a4722abf295459..e3bc17130fac9377700231cd3b1384fba4f4dcdc 100644 >--- a/Source/WebInspectorUI/UserInterface/Views/DatabaseTableContentView.js >+++ b/Source/WebInspectorUI/UserInterface/Views/DatabaseTableContentView.js >@@ -95,7 +95,7 @@ WI.DatabaseTableContentView = class DatabaseTableContentView extends WI.ContentV > > // We were returned a table with no columns. This can happen when a table has > // no data, the SELECT query only returns column names when there is data. >- this._messageTextViewElement = WI.createMessageTextView(WI.UIString("The â%sâ\ntable is empty.").format(this.representedObject.name), false); >+ this._messageTextViewElement = WI.createMessageTextView(WI.UIString("The \u201C%s\u201D\ntable is empty.").format(this.representedObject.name), false); > this.element.appendChild(this._messageTextViewElement); > } > >@@ -109,7 +109,7 @@ WI.DatabaseTableContentView = class DatabaseTableContentView extends WI.ContentV > if (this._messageTextViewElement) > this._messageTextViewElement.remove(); > >- this._messageTextViewElement = WI.createMessageTextView(WI.UIString("An error occurred trying to read the â%sâ table.").format(this.representedObject.name), true); >+ this._messageTextViewElement = WI.createMessageTextView(WI.UIString("An error occurred trying to read the \u201C%s\u201D table.").format(this.representedObject.name), true); > this.element.appendChild(this._messageTextViewElement); > } > >diff --git a/Source/WebInspectorUI/UserInterface/Views/DebuggerDashboardView.css b/Source/WebInspectorUI/UserInterface/Views/DebuggerDashboardView.css >index 328058f185c578487deac4aebc9984614429c2b0..1f95fff78fbe843900971b0f72589f8bbb83ac35 100644 >--- a/Source/WebInspectorUI/UserInterface/Views/DebuggerDashboardView.css >+++ b/Source/WebInspectorUI/UserInterface/Views/DebuggerDashboardView.css >@@ -175,7 +175,7 @@ body[dir=rtl] .dashboard.debugger > .location .function-icon { > } > > .dashboard.debugger > .location .function-name::after { >- content: '\00A0\2014\00A0'; /* — */ >+ content: "\00A0\2014\00A0"; > } > > .dashboard.debugger > .location .go-to-link { >diff --git a/Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.js b/Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.js >index 1b77feb759756a952986019d3ac871d5813e9a41..d39ba4488c217d407a48590cdb7db7e4e667efdc 100644 >--- a/Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.js >+++ b/Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.js >@@ -1186,7 +1186,7 @@ WI.DebuggerSidebarPanel = class DebuggerSidebarPanel extends WI.NavigationSideba > > var eventBreakpointTreeElement = new WI.EventBreakpointTreeElement(eventBreakpoint, { > className: WI.DebuggerSidebarPanel.PausedBreakpointIconStyleClassName, >- title: WI.UIString("â%sâ Event Fired").format(pauseData.eventName), >+ title: WI.UIString("\u201C%s\u201D Event Fired").format(pauseData.eventName), > }); > this._pauseReasonTreeOutline.appendChild(eventBreakpointTreeElement); > >diff --git a/Source/WebInspectorUI/UserInterface/Views/ErrorObjectView.js b/Source/WebInspectorUI/UserInterface/Views/ErrorObjectView.js >index acdb032433f9b756c0980449bcb58de7bf7c1112..8f88632a995e32965dd6c2bef187b084e2609f28 100644 >--- a/Source/WebInspectorUI/UserInterface/Views/ErrorObjectView.js >+++ b/Source/WebInspectorUI/UserInterface/Views/ErrorObjectView.js >@@ -55,7 +55,7 @@ WI.ErrorObjectView = class ErrorObjectView extends WI.Object > > var span = document.createElement("span"); > span.classList.add("error-object-link-container"); >- span.textContent = " â "; >+ span.textContent = ` ${emDash} `; > > const options = { > ignoreNetworkTab: true, >diff --git a/Source/WebInspectorUI/UserInterface/Views/EventBreakpointPopover.js b/Source/WebInspectorUI/UserInterface/Views/EventBreakpointPopover.js >index 35ce9ac75244517e4dc57f014f1e5a5a27d5504d..c38ba0a9d90b8c80e8a79d10487bf6fcd65f0671 100644 >--- a/Source/WebInspectorUI/UserInterface/Views/EventBreakpointPopover.js >+++ b/Source/WebInspectorUI/UserInterface/Views/EventBreakpointPopover.js >@@ -82,7 +82,7 @@ WI.EventBreakpointPopover = class EventBreakpointPopover extends WI.Popover > this._typeSelectElement.hidden = true; > > this._domEventNameInputElement = typeContainer.appendChild(document.createElement("input")); >- this._domEventNameInputElement.placeholder = WI.UIString("Example: â%sâ").format("click"); >+ this._domEventNameInputElement.placeholder = WI.UIString("Example: \u201C%s\u201D").format("click"); > this._domEventNameInputElement.spellcheck = false; > this._domEventNameInputElement.addEventListener("keydown", (event) => { > if (isEnterKey(event) || event.key === "Tab") { >diff --git a/Source/WebInspectorUI/UserInterface/Views/InlineSwatch.js b/Source/WebInspectorUI/UserInterface/Views/InlineSwatch.js >index 4b2f06a8e14822378bdb18b6d622ea85c51839c7..84b5bc6bb8cbfad04000b1d3a5dfffbb1ba72bc6 100644 >--- a/Source/WebInspectorUI/UserInterface/Views/InlineSwatch.js >+++ b/Source/WebInspectorUI/UserInterface/Views/InlineSwatch.js >@@ -48,10 +48,10 @@ WI.InlineSwatch = class InlineSwatch extends WI.Object > this._swatchElement.title = WI.UIString("Edit custom gradient"); > break; > case WI.InlineSwatch.Type.Bezier: >- this._swatchElement.title = WI.UIString("Edit âcubic-bezierâ function"); >+ this._swatchElement.title = WI.UIString("Edit \u201Ccubic-bezier\u201D function"); > break; > case WI.InlineSwatch.Type.Spring: >- this._swatchElement.title = WI.UIString("Edit âspringâ function"); >+ this._swatchElement.title = WI.UIString("Edit \u201Cspring\u201D function"); > break; > case WI.InlineSwatch.Type.Variable: > this._swatchElement.title = WI.UIString("View variable value"); >diff --git a/Source/WebInspectorUI/UserInterface/Views/LayerTreeDataGridNode.js b/Source/WebInspectorUI/UserInterface/Views/LayerTreeDataGridNode.js >index 314a5c6c111954d7b9fe2be42035f39fa58d940e..fc6273901cb87255079c75d749989f066469716a 100644 >--- a/Source/WebInspectorUI/UserInterface/Views/LayerTreeDataGridNode.js >+++ b/Source/WebInspectorUI/UserInterface/Views/LayerTreeDataGridNode.js >@@ -44,7 +44,7 @@ WI.LayerTreeDataGridNode = class LayerTreeDataGridNode extends WI.DataGridNode > > createCellContent(columnIdentifier, cell) > { >- cell = columnIdentifier === "name" ? this._makeNameCell() : this._makeOutlet(columnIdentifier, document.createTextNode("â")); >+ cell = columnIdentifier === "name" ? this._makeNameCell() : this._makeOutlet(columnIdentifier, document.createTextNode(enDash)); > this._updateCell(columnIdentifier); > return cell; > } >diff --git a/Source/WebInspectorUI/UserInterface/Views/LayerTreeDetailsSidebarPanel.js b/Source/WebInspectorUI/UserInterface/Views/LayerTreeDetailsSidebarPanel.js >index 4652e4f50419716ab947d1c1d0db4a8c92f6cf99..75ce4b635d6eb8ff7bf623a3e168b434809a133f 100644 >--- a/Source/WebInspectorUI/UserInterface/Views/LayerTreeDetailsSidebarPanel.js >+++ b/Source/WebInspectorUI/UserInterface/Views/LayerTreeDetailsSidebarPanel.js >@@ -401,7 +401,7 @@ WI.LayerTreeDetailsSidebarPanel = class LayerTreeDetailsSidebarPanel extends WI. > if (compositingReasons.iFrame) > addReason(WI.UIString("Element is <iframe>")); > if (compositingReasons.backfaceVisibilityHidden) >- addReason(WI.UIString("Element has âbackface-visibility: hiddenâ style")); >+ addReason(WI.UIString("Element has \u201Cbackface-visibility: hidden\u201D style")); > if (compositingReasons.clipsCompositingDescendants) > addReason(WI.UIString("Element clips compositing descendants")); > if (compositingReasons.animation) >@@ -409,11 +409,11 @@ WI.LayerTreeDetailsSidebarPanel = class LayerTreeDetailsSidebarPanel extends WI. > if (compositingReasons.filters) > addReason(WI.UIString("Element has CSS filters applied")); > if (compositingReasons.positionFixed) >- addReason(WI.UIString("Element has âposition: fixedâ style")); >+ addReason(WI.UIString("Element has \u201Cposition: fixed\u201D style")); > if (compositingReasons.positionSticky) >- addReason(WI.UIString("Element has âposition: stickyâ style")); >+ addReason(WI.UIString("Element has \u201Cposition: sticky\u201D style")); > if (compositingReasons.overflowScrollingTouch) >- addReason(WI.UIString("Element has â-webkit-overflow-scrolling: touchâ style")); >+ addReason(WI.UIString("Element has \u201C-webkit-overflow-scrolling: touch\u201D style")); > if (compositingReasons.stacking) > addReason(WI.UIString("Element may overlap another compositing element")); > if (compositingReasons.overlap) >@@ -437,12 +437,12 @@ WI.LayerTreeDetailsSidebarPanel = class LayerTreeDetailsSidebarPanel extends WI. > if (compositingReasons.perspective) > addReason(WI.UIString("Element has perspective applied")); > if (compositingReasons.preserve3D) >- addReason(WI.UIString("Element has âtransform-style: preserve-3dâ style")); >+ addReason(WI.UIString("Element has \u201Ctransform-style: preserve-3d\u201D style")); > if (compositingReasons.willChange) >- addReason(WI.UIString("Element has âwill-changeâ style which includes opacity, transform, transform-style, perspective, filter or backdrop-filter")); >+ addReason(WI.UIString("Element has \u201Cwill-change\u201D style which includes opacity, transform, transform-style, perspective, filter or backdrop-filter")); > if (compositingReasons.root) > addReason(WI.UIString("Element is the root element")); > if (compositingReasons.blending) >- addReason(WI.UIString("Element has âblend-modeâ style")); >+ addReason(WI.UIString("Element has \u201Cblend-mode\u201D style")); > } > }; >diff --git a/Source/WebInspectorUI/UserInterface/Views/Layers3DContentView.js b/Source/WebInspectorUI/UserInterface/Views/Layers3DContentView.js >index 94af03da7bcc8f4bad777d879dfed1246aa3466b..a53667ac7f4379f90221b1aa631f8a498b6cc5af 100644 >--- a/Source/WebInspectorUI/UserInterface/Views/Layers3DContentView.js >+++ b/Source/WebInspectorUI/UserInterface/Views/Layers3DContentView.js >@@ -486,7 +486,7 @@ WI.Layers3DContentView = class Layers3DContentView extends WI.ContentView > if (compositingReasons.iFrame) > addReason(WI.UIString("Element is <iframe>")); > if (compositingReasons.backfaceVisibilityHidden) >- addReason(WI.UIString("Element has âbackface-visibility: hiddenâ style")); >+ addReason(WI.UIString("Element has \u201Cbackface-visibility: hidden\u201D style")); > if (compositingReasons.clipsCompositingDescendants) > addReason(WI.UIString("Element clips compositing descendants")); > if (compositingReasons.animation) >@@ -494,11 +494,11 @@ WI.Layers3DContentView = class Layers3DContentView extends WI.ContentView > if (compositingReasons.filters) > addReason(WI.UIString("Element has CSS filters applied")); > if (compositingReasons.positionFixed) >- addReason(WI.UIString("Element has âposition: fixedâ style")); >+ addReason(WI.UIString("Element has \u201Cposition: fixed\u201D style")); > if (compositingReasons.positionSticky) >- addReason(WI.UIString("Element has âposition: stickyâ style")); >+ addReason(WI.UIString("Element has \u201Cposition: sticky\u201D style")); > if (compositingReasons.overflowScrollingTouch) >- addReason(WI.UIString("Element has â-webkit-overflow-scrolling: touchâ style")); >+ addReason(WI.UIString("Element has \u201C-webkit-overflow-scrolling: touch\u201D style")); > if (compositingReasons.stacking) > addReason(WI.UIString("Element may overlap another compositing element")); > if (compositingReasons.overlap) >@@ -522,13 +522,13 @@ WI.Layers3DContentView = class Layers3DContentView extends WI.ContentView > if (compositingReasons.perspective) > addReason(WI.UIString("Element has perspective applied")); > if (compositingReasons.preserve3D) >- addReason(WI.UIString("Element has âtransform-style: preserve-3dâ style")); >+ addReason(WI.UIString("Element has \u201Ctransform-style: preserve-3d\u201D style")); > if (compositingReasons.willChange) >- addReason(WI.UIString("Element has âwill-changeâ style which includes opacity, transform, transform-style, perspective, filter or backdrop-filter")); >+ addReason(WI.UIString("Element has \u201Cwill-change\u201D style which includes opacity, transform, transform-style, perspective, filter or backdrop-filter")); > if (compositingReasons.root) > addReason(WI.UIString("Element is the root element")); > if (compositingReasons.blending) >- addReason(WI.UIString("Element has âblend-modeâ style")); >+ addReason(WI.UIString("Element has \u201Cblend-mode\u201D style")); > } > }; > >diff --git a/Source/WebInspectorUI/UserInterface/Views/LayoutTimelineDataGridNode.js b/Source/WebInspectorUI/UserInterface/Views/LayoutTimelineDataGridNode.js >index 0be35f9bd0c1606eaf5e30cca34cc1fe374250d6..725da09f200360fd9fdcb934a197abecd286bae9 100644 >--- a/Source/WebInspectorUI/UserInterface/Views/LayoutTimelineDataGridNode.js >+++ b/Source/WebInspectorUI/UserInterface/Views/LayoutTimelineDataGridNode.js >@@ -72,7 +72,7 @@ WI.LayoutTimelineDataGridNode = class LayoutTimelineDataGridNode extends WI.Time > return isNaN(value) ? emDash : WI.UIString("%dpx").format(value); > > case "area": >- return isNaN(value) ? emDash : WI.UIString("%dpx²").format(value); >+ return isNaN(value) ? emDash : WI.UIString("%dpx\u00B2").format(value); > > case "startTime": > return isNaN(value) ? emDash : Number.secondsToString(value - this._baseStartTime, true); >diff --git a/Source/WebInspectorUI/UserInterface/Views/NetworkTableContentView.css b/Source/WebInspectorUI/UserInterface/Views/NetworkTableContentView.css >index 38f760374e9903717db76b428d2912feff2cc858..f3c69e4ffac92e26ba9239b7cf0afbcbacf3823c 100644 >--- a/Source/WebInspectorUI/UserInterface/Views/NetworkTableContentView.css >+++ b/Source/WebInspectorUI/UserInterface/Views/NetworkTableContentView.css >@@ -91,7 +91,7 @@ body[dir=rtl] .network-table .cell.dom-node.name .disclosure { > } > > .network-table .data-container .cell.name .range::before { >- content: " â "; >+ content: "\00A0\2014\00A0"; > } > > .network-table:focus .data-container li.selected .cell.name .range { >diff --git a/Source/WebInspectorUI/UserInterface/Views/NetworkTableContentView.js b/Source/WebInspectorUI/UserInterface/Views/NetworkTableContentView.js >index 2c0e1e136d16252976ec1e1220b5cdc49622c24a..6af19bf7ddfc6e7185cd8f4e1dc372d39f06de82 100644 >--- a/Source/WebInspectorUI/UserInterface/Views/NetworkTableContentView.js >+++ b/Source/WebInspectorUI/UserInterface/Views/NetworkTableContentView.js >@@ -701,7 +701,7 @@ WI.NetworkTableContentView = class NetworkTableContentView extends WI.ContentVie > > let originator = fullscreenDOMEvents[i].originator || fullscreenDOMEvents[i + 1].originator; > if (originator) >- fullscreenElement.title = WI.UIString("Full-Screen from â%sâ").format(originator.displayName); >+ fullscreenElement.title = WI.UIString("Full-Screen from \u201C%s\u201D").format(originator.displayName); > else > fullscreenElement.title = WI.UIString("Full-Screen"); > } >diff --git a/Source/WebInspectorUI/UserInterface/Views/ObjectPreviewView.js b/Source/WebInspectorUI/UserInterface/Views/ObjectPreviewView.js >index 9c24bb0031673b5ca158b074d9cfb60359631d8a..b589e7468e01b314dc0ddd7948ce6c30447389b4 100644 >--- a/Source/WebInspectorUI/UserInterface/Views/ObjectPreviewView.js >+++ b/Source/WebInspectorUI/UserInterface/Views/ObjectPreviewView.js >@@ -203,7 +203,7 @@ WI.ObjectPreviewView = class ObjectPreviewView extends WI.Object > var lossless = preview.lossless; > var overflow = preview.overflow; > >- // FIXME: Array previews should have better sparse support: (undefined à 10). >+ // FIXME: Array previews should have better sparse support. > var isArray = preview.subtype === "array"; > > element.append(isArray ? "[" : "{"); >diff --git a/Source/WebInspectorUI/UserInterface/Views/ProfileDataGridNode.js b/Source/WebInspectorUI/UserInterface/Views/ProfileDataGridNode.js >index 76f5beb9938517bc0074181ad7f27f71d3897966..e29449e1b1f9ba28aa1115c62d60360796b61cc7 100644 >--- a/Source/WebInspectorUI/UserInterface/Views/ProfileDataGridNode.js >+++ b/Source/WebInspectorUI/UserInterface/Views/ProfileDataGridNode.js >@@ -117,7 +117,7 @@ WI.ProfileDataGridNode = class ProfileDataGridNode extends WI.DataGridNode > > // FIXME: <https://webkit.org/b/155072> Web Inspector: Charge to Caller should work with Bottom Up Profile View > let disableChargeToCaller = this._tree.callingContextTree.type === WI.CallingContextTree.Type.BottomUp; >- contextMenu.appendItem(WI.UIString("Charge â%sâ to Callers").format(this.displayName()), () => { >+ contextMenu.appendItem(WI.UIString("Charge \u201C%s\u201D to Callers").format(this.displayName()), () => { > this._tree.addModifier({type: WI.ProfileDataGridTree.ModifierType.ChargeToCaller, source: this._node}); > }, disableChargeToCaller); > >diff --git a/Source/WebInspectorUI/UserInterface/Views/ResourceTimelineDataGridNode.js b/Source/WebInspectorUI/UserInterface/Views/ResourceTimelineDataGridNode.js >index 5564a420768ad3095c95467863cb5ca18c93593b..7559642c1b0913150a6cc5cef79179ec83359866 100644 >--- a/Source/WebInspectorUI/UserInterface/Views/ResourceTimelineDataGridNode.js >+++ b/Source/WebInspectorUI/UserInterface/Views/ResourceTimelineDataGridNode.js >@@ -360,7 +360,7 @@ WI.ResourceTimelineDataGridNode = class ResourceTimelineDataGridNode extends WI. > if (resource.failed) > descriptionElement.textContent = WI.UIString("Resource failed to load."); > else if (resource.urlComponents.scheme === "data") >- descriptionElement.textContent = WI.UIString("Resource was loaded with the âdataâ scheme."); >+ descriptionElement.textContent = WI.UIString("Resource was loaded with the \u201Cdata\u201D scheme."); > else > descriptionElement.textContent = WI.UIString("Resource was served from the cache."); > popoverContentElement.appendChild(descriptionElement); >diff --git a/Source/WebInspectorUI/UserInterface/Views/ScriptDetailsTimelineView.css b/Source/WebInspectorUI/UserInterface/Views/ScriptDetailsTimelineView.css >index db9d43e47c1f57c970220256373d21e3f0c84ae9..3911c8d83e8f2c817205c7e4233024d28d4d9af8 100644 >--- a/Source/WebInspectorUI/UserInterface/Views/ScriptDetailsTimelineView.css >+++ b/Source/WebInspectorUI/UserInterface/Views/ScriptDetailsTimelineView.css >@@ -48,5 +48,5 @@ > } > > .tree-outline .item.small:not(.two-line) .alternate-subtitle::before { >- content: " â "; >+ content: "\00A0\2014\00A0"; > } >diff --git a/Source/WebInspectorUI/UserInterface/Views/TextEditor.css b/Source/WebInspectorUI/UserInterface/Views/TextEditor.css >index f615034989c5978bafe47b9652302cb514187d14..96ccb94fccf43c627563949b6d945a444f73f7a9 100644 >--- a/Source/WebInspectorUI/UserInterface/Views/TextEditor.css >+++ b/Source/WebInspectorUI/UserInterface/Views/TextEditor.css >@@ -75,7 +75,7 @@ > } > > .text-editor > .CodeMirror .has-breakpoint.multiple-breakpoints .CodeMirror-linenumber::before { >- content: "â¢â¢â¢"; >+ content: "\2022\2022\2022"; > color: white; > line-height: 6px; > text-align: center; >diff --git a/Source/WebInspectorUI/UserInterface/Views/TreeOutline.css b/Source/WebInspectorUI/UserInterface/Views/TreeOutline.css >index 697e1d951d21c0e76b6e89cef9dabe947e99482f..5c1b3475755546eb8aecbb02d83f7da30ece24a6 100644 >--- a/Source/WebInspectorUI/UserInterface/Views/TreeOutline.css >+++ b/Source/WebInspectorUI/UserInterface/Views/TreeOutline.css >@@ -252,7 +252,7 @@ body[dir=rtl] .tree-outline .item .status { > > .tree-outline .item .subtitle::before, > .tree-outline .item .alternate-subtitle::before { >- content: " â "; >+ content: "\00A0\2014\00A0"; > } > > @media (prefers-dark-interface) {
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 192216
:
356131
|
356141
|
356143
|
356150
|
356161
|
356191